博客
关于我
Dom4j解析XML
阅读量:378 次
发布时间:2019-03-04

本文共 2908 字,大约阅读时间需要 9 分钟。

dom4j是一个Java/XML应用程序编程接口(API),旨在高效读取和操作XML文件。它是jdom的升级版本,性能优越、功能强大且易于使用。dom4j不仅性能优于Sun公司官方的DOM技术,还支持开源开发,可从SourceForge获取。

Jar包依赖

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()); } }}

生成的XML示例

admin
123456

dom4j是一个功能强大且易于使用的XML处理框架,适合在Java应用中进行XML操作。

转载地址:http://sxne.baihongyu.com/

你可能感兴趣的文章
svn访问报错500
查看>>
Orderer节点启动报错解决方案:Not bootstrapping because of 3 existing channels
查看>>
org.apache.ibatis.exceptions.PersistenceException:
查看>>
org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned
查看>>
org.apache.ibatis.type.TypeException: Could not resolve type alias 'xxxx'异常
查看>>
org.apache.poi.hssf.util.Region
查看>>
org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;
查看>>
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /
查看>>
org.hibernate.HibernateException: Unable to get the default Bean Validation factory
查看>>
org.hibernate.ObjectNotFoundException: No row with the given identifier exists:
查看>>
SQL-CLR 类型映射 (LINQ to SQL)
查看>>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
查看>>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
查看>>
org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded
查看>>
org.tinygroup.serviceprocessor-服务处理器
查看>>
org/eclipse/jetty/server/Connector : Unsupported major.minor version 52.0
查看>>
org/hibernate/validator/internal/engine
查看>>
Orleans框架------基于Actor模型生成分布式Id
查看>>
SQL-36 创建一个actor_name表,将actor表中的所有first_name以及last_name导入改表。
查看>>
ORM sqlachemy学习
查看>>