1、java代码:
主要采用dom来进行操作
package test; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.w3c.dom.Text; import org.xml.sax.SAXException; public class XmlOprate { Document doc; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; NodeList imags; String path; public NodeList getImags() { return imags; } public void setImags(NodeList imags) { this.imags = imags; } /** * 构造方法 * @param path:xml文件的路径 * @param nodes:要解析的xml节点名称 */ public XmlOprate(String path) { super(); this.path = path; System.out.println(System.getProperty("user.dir")); } /** * 解析XML * @param path */ public void readXml(){ try { builder = factory.newDocumentBuilder(); Document doc=builder.parse(path); doc.normalize(); NodeList imags =doc.getElementsByTagName("imags"); this.setImags(imags); for (int i=0;i<imags.getLength();i++){ Element link=(Element) imags.item(i); System.out.print("title: "); System.out.println(link.getElementsByTagName("title").item(0).getFirstChild().getNodeValue()); System.out.print("URL: "); System.out.println(link.getElementsByTagName("url").item(0).getFirstChild().getNodeValue()); System.out.print("imgsrc: "); System.out.println(link.getElementsByTagName("imgsrc").item(0).getFirstChild().getNodeValue()); System.out.println(); } }catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * addCode * @param path */ public void addXmlCode(String imgsrc,String title,String url){ try { builder = factory.newDocumentBuilder(); Document doc=builder.parse(path); doc.normalize(); Text textseg; Element imag=doc.createElement("imags"); Element linkimgsrc=doc.createElement("imgsrc"); textseg=doc.createTextNode(imgsrc); linkimgsrc.appendChild(textseg); imag.appendChild(linkimgsrc); Element linktitle=doc.createElement("title"); textseg=doc.createTextNode(title); linktitle.appendChild(textseg); imag.appendChild(linktitle); Element linkurl=doc.createElement("url"); textseg=doc.createTextNode(url); linkurl.appendChild(textseg); imag.appendChild(linkurl); doc.getDocumentElement().appendChild(imag); TransformerFactory tFactory =TransformerFactory.newInstance(); Transformer transformer; transformer = tFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new java.io.File(path)); transformer.transform(source, result); }catch(Exception e){ } } /** * delete xml code * @param path */ public void delXmlCode(){ try { builder = factory.newDocumentBuilder(); doc=builder.parse(path); doc.normalize(); NodeList imags =doc.getElementsByTagName("imags"); Element elink=(Element) imags.item(0); elink.removeChild(elink.getElementsByTagName("imgsrc").item(0)); elink.removeChild(elink.getElementsByTagName("title").item(0)); elink.removeChild(elink.getElementsByTagName("url").item(0)); doc.getFirstChild().removeChild(elink); TransformerFactory tFactory =TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new java.io.File(path)); transformer.transform(source, result); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } } }
2、xml部分
<?xml version="1.0" encoding="UTF-8" ?> <root> <imags> <imgsrc>images/ad-01.jpg</imgsrc> <title>胡志明市</title> <url>http://torchrelay.beijing2008.cn/cn/journey/hochiminhcity/</url> </imags> <imags> <imgsrc>images/ad-02.jpg</imgsrc> <title>香港2</title> <url>http://torchrelay.beijing2008.cn/cn/journey/hongkong/</url> </imags> </root>
3、总结:
看对xml操作的三个方法(读、写、删),他们的初始化语句都相同:
builder = factory.newDocumentBuilder(); Document doc=builder.parse(path); doc.normalize();
开始我打算把这部分相同的部分拿出来写在构造方法中,但是在测试中发现,这样总是会报空指针的错误(搞了我好久);
而只是把
builder = factory.newDocumentBuilder();
放到builder的初始化语句中的时候,读没问题,但是当写或者删的时候也会报错;
所以就写成现在这样了,感觉有点乱乱的,但也没想到什么好的方法,就先贴到这里了,以后可能会用得着
更多java对XML文件的解析、节点的增加、删除操作总结相关文章请关注PHP中文网!

本文解释了如何使用RSS feed进行有效的新闻汇总和内容策划。 它详细介绍了使用RSS读取器(例如Feedly和Inoreader),组织供稿以及为目标内容的利用功能的订阅供稿。 利益

手机XML转PDF的速度取决于以下因素:XML结构的复杂性手机硬件配置转换方法(库、算法)代码质量优化手段(选择高效库、优化算法、缓存数据、利用多线程)总体而言,没有绝对的答案,需要根据具体情况进行优化。

本文解释了用于Web内容管理的原子出版协议(ATOMPUB)。 它使用HTTP方法(获取,发布,PUT,删除)详细介绍了用于内容创建,检索,更新和删除的原子格式。 本文还讨论了Atompub

本文详细介绍了使用RSS提要实施内容联合的内容。 它涵盖创建RSS提要,识别目标网站,提交提要以及监视效率。 诸如有限控制和丰富媒体支持之类的挑战也是铁饼

本文探讨了集成XML和语义网络技术。 核心问题是将XML的结构化数据映射到RDF三元组,以进行语义互操作性。 最佳实践涉及本体定义,战略映射方法,仔细的ATT

本文详细介绍了针对未经授权访问的RSS供给。 它检查了各种方法,包括HTTP身份验证,具有速率限制的API密钥,HTTPS和内容混淆(灰心)。 最佳实践涉及IP限制,转换

本文使用XML详细介绍了数据互操作性,重点是医疗保健和金融。 它涵盖了模式定义,XML文档创建,数据转换,解析和交换机制。钥匙XML标准(HL7,DICOM,FinML,ISO 20022)

本文详细介绍了为数据一致性创建自定义XML词汇(schemas)。 它涵盖定义范围,识别实体和属性,设计XML结构,选择模式语言(XSD或放松NG),模式开发,测试


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

禅工作室 13.0.1
功能强大的PHP集成开发环境