注:本节教材内容,与上期推送的《预备知识:Java数据持久化->XML文件(一)》为一个章节。
回顾上节内容,请点击:预备知识:Java数据持久化->XML文件(一)
实验流程
4.利用DOM修改XML。
public void modifyXmlByDom() {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setIgnoringElementContentWhitespace(true);
String xmlName = System.getProperty("user.dir") + "\\data\\Students.xml";
try {
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(xmlName);
// 获取根节点
Element root = doc.getDocumentElement();
// 利用xpath定位sequence为2的节点
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
Element node = (Element)xpath.evaluate(
"/class/student[@sequence='2']", root, XPathConstants.NODE);
// 将degree节点的内容更改为研究生
node.getElementsByTagName("degree").item(0).setTextContent("研究生");
// 保存
TransformerFactory factory = TransformerFactory.newInstance();
Transformer former = factory.newTransformer();
former.transform(new DOMSource(doc), new StreamResult(
new File(xmlName)));
} catch (Exception e) {
System.out.println(e.getMessage());
}
} |
在上述代码中,我们引入了一个新的知识点:Xpath,XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。
同样的,Xpath的寻找节点的功能也适用于对HTML文档进行查找。后续我们在使用Selenium对HTML文档元素进行查找时也会用到。
5.利用DOM删除XML。
// 与修改节点内容类似,只需要对查找到的节点进行删除即可 root.removeChild(node); |
上述代码只是简单地为大家展示了如何使用标准的DOM接口来完成XML文件的增删改查的操作,事实上DOM接口是W3C定义的标准接口,任何编程语言都可以支持。除了上述代码以外,我们在实际应用中,还会基于具体的业务需要进行二次封装,使调用更加方便,增强代码的重用性。