本文共 2908 字,大约阅读时间需要 9 分钟。
dom4j是一个Java/XML应用程序编程接口(API),旨在高效读取和操作XML文件。它是jdom的升级版本,性能优越、功能强大且易于使用。dom4j不仅性能优于Sun公司官方的DOM技术,还支持开源开发,可从SourceForge获取。
dom4j-2.0.0-RC1.jar
jaxen-1.1-beta-6.jar(用于XPath查询)以下是基于dom4j的示例代码,展示了创建、修改、删除和解析XML文档的功能。
import java.io.File;import java.io.FileWriter;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.Node;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class DOM4JDemo { @Test public void createXML() throws Exception { Document document = DocumentHelper.createDocument(); Element root = document.addElement("hibernate-mapping"); Element classElement = root.addElement("class") .addAttribute("name", "com.trs.User") .addAttribute("table", "wcmuser"); classElement.addElement("property") .addAttribute("name", "username") .addText("admin"); classElement.addElement("property") .addAttribute("name", "password") .addText("123456"); OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new FileWriter("User.hbm.xml"), format); writer.write(document); writer.close(); } @Test public void updateXML() throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read(new File("User.hbm.xml")); Node node = document.selectSingleNode("//hibernate-mapping/class/property[@name='password']"); node.setText("12345678"); OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new FileWriter("User.hbm.xml"), format); writer.write(document); writer.close(); } @Test public void deleteXml() throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read(new File("User.hbm.xml")); Node node = document.selectSingleNode("//property[@name='password']"); node.getParent().remove(node); OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new FileWriter("User.hbm.xml"), format); writer.write(document); writer.close(); } @Test public void parseXml() throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read(new File("User.hbm.xml")); List nodes = document.selectNodes("//hibernate-mapping/class/property"); for (Node node : nodes) { System.out.println(node.getName()); System.out.println(node.valueOf("@name")); System.out.println(node.getText()); } }} admin 123456
dom4j是一个功能强大且易于使用的XML处理框架,适合在Java应用中进行XML操作。
转载地址:http://sxne.baihongyu.com/