xml解析之(二) - dom4j解析xml
dom4j解析在开发中很多时候都会用到,尤其是当我们要多dom元素进行增删改的操作的时候,查询的话建议用SAX解析方式
1.先写一个工具类:
public class Dom4jXmlUtils {
/**
* 工具类
* 通过xml的路径得到document对象
* @param path
* @return
* @throws Exception
*/
public static Document getDocument(String path) throws Exception {
//创建一个解析器
SAXReader reader = new SAXReader();
//解析xml文件返回一个document对象
return reader.read(path).getDocument();
}
/**
* 回写出格式漂亮的xml
* @param document
* @param path
* @throws Exception
*/
public static void writerXml(Document document,String path) throws Exception{
//创建一个漂亮xml的格式,可以把格式化xml,使程序员能很好的看懂
OutputFormat format = OutputFormat.createPrettyPrint();
//创建一个xml输出流
XMLWriter writer = new XMLWriter(new FileOutputStream(path),format);
//把内存中的document写进一个xml文件中
writer.write(document);
//关闭流
writer.close();
}
}
2.入门例子
public class Dom4jParseXML {
/**
* dom4j操作xml入门
* @author Mrliu
* @param args
*/
public static void main(String[] args) throws Exception {
String path = "src/person.xml";
//removeElement(path);
//addElement(path);
modifyElement(path);
}
/**
* 把第一个person节点中age节点中的文本设置成44
* @param path
* @throws Exception
*/
public static void modifyElement(String path) throws Exception{
//new一个解析器
SAXReader reader = new SAXReader();
//拿到document文档
Document document = reader.read(path).getDocument();
//拿到跟节点
Element root = document.getRootElement();
Element person = (Element) root.elements().get(0);
Element age = person.element("age");
age.setText("44");
//回写:在内存中修改好了xml文件,然后要把document对象写进xml文件中
OutputFormat format = OutputFormat.createPrettyPrint();
//xml文档漂亮的格式
XMLWriter writer = new XMLWriter(new FileOutputStream(path),format);
writer.write(document);
writer.close();
}
/**
* 删除person标签下的第四个节点
* @param path
* @throws Exception
*/
@SuppressWarnings("unchecked")
public static void removeElement(String path) throws Exception {
//拿到document对象
Document document = Dom4jXmlUtils.getDocument(path);
//拿到根节点
Element root = document.getRootElement();
Element element = (Element) root.elements().get(0);
List<Element> list = element.elements();
list.remove(4);
//回写
Dom4jXmlUtils.writerXml(document, path);
}
/**
* 添加<dog>狼狗</dog>
* @param path
* @throws Exception
*/
public static void addElement(String path) throws Exception{
//得到document对象
Document document = Dom4jXmlUtils.getDocument(path);
//得到文档的根节点
Element root = document.getRootElement();
//拿到person节点
Element person = (Element) root.elements().get(0);
//拿到person下的子节点
List<Element> list = person.elements();
//创建一个<dog>节点
Element dog = DocumentHelper.createElement("dog");
//设置文本内容
dog.setText("狼狗");
list.add(4, dog);
//回写
Dom4jXmlUtils.writerXml(document, path);
}
}
相关推荐
1. **解析XML**:DOM4J可以读取XML文件,将其转换为一个树形结构,即Document对象。解析器有SAX和DOM两种模式,SAX是事件驱动的,适用于大文件,而DOM则将整个文档加载到内存中,适合小文件。 2. **创建XML**:DOM4...
DOM4j类包,已经打包,放在工程项目的BIN下
**DOM4J——XML解析库详解** XML(eXtensible Markup Language)作为一种标记语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java环境中,解析XML文档时,我们通常会遇到各种库,其中DOM4J是一个非常流行...
### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...
DOM解析器将整个XML文档加载到内存中,形成一个树形结构,称为DOM树。每个XML元素、属性、文本等都被表示为树中的节点。这种解析方式的优点是可以方便地通过节点关系进行遍历和修改,但缺点是占用内存大,尤其对于...
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。...
在Java编程中,解析XML文档通常需要借助于特定的库,如dom4j和jdom。这两个库都是Java平台上处理XML的优秀选择。 dom4j是一个功能强大的开源XML处理库,提供了灵活且高效的API。它不仅支持DOM模型,还支持SAX...
- DOM4J支持两种解析XML文档的方式:SAX(Simple API for XML)和DOM(Document Object Model)。SAX是事件驱动的解析器,适用于大文件,而DOM则将整个XML文档加载到内存中,适合小文件或内存充足的情况。 3. **...
这个“xml-dom4j解析工具类”显然是为了简化XML文档操作而设计的,它利用DOM4J库来处理XML数据。 首先,让我们详细了解一下DOM4J的核心概念。DOM4J提供了一个灵活的API,以树形结构表示XML文档。在DOM(Document ...
要开始解析XML文件,首先需要导入DOM4J的相关包: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; ``` 接下来,我们将创建...
Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得开发者能够方便地读取、写入、修改以及操作XML文件。DOM4J是Java中一个非常强大的XML处理库,它结合了DOM、SAX和JDOM的优点,同时也...
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
Java解析XML时,dom4j是一个非常流行的库,它提供了灵活且强大的API来处理XML文档。dom4j-1.6.1.jar是这个库的一个版本,发布于2005年,它支持XML的读取、写入、操作以及查询功能。在本文中,我们将深入探讨dom4j的...
### XML解析技术DOM4J解析 #### DOM4J解析概览 DOM4J是一种高性能、功能强大且极其易于使用的Java XML API,它最初是作为JDOM的一个智能分支发展起来的,自2000年下半年开始持续开发。DOM4J不仅在功能上超越了基本...
在“jar包执行20190331.rar”文件中,可能包含了一个Java项目,该项目使用DOM4J库解析XML文件并执行相关业务逻辑。执行此类项目通常涉及以下步骤: 1. 将jar包解压,找到主类(包含main方法)。 2. 使用Java命令行...
5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...
Jaxen可以与多种XML解析器(如DOM、DOM4J、JDOM等)协同工作,提供跨平台的XPath支持。 总结来说,DOM4J是一个全面且易用的XML处理工具,广泛应用于Java开发中。通过`dom4j-1.6.1.jar`和`jaxen-1.1.1.jar`这两个jar...
1. **解析XML文档**:DOM4J可以使用SAX或DOM方式解析XML文件。SAX是事件驱动的解析器,适用于大文件,而DOM解析会将整个文档加载到内存,适合小文件。DOM4J的灵活性在于,可以根据需求选择合适的解析策略。 2. **...
1. **XML解析**:DOM4J支持多种解析方式,如DOM、SAX和StAX。其中,DOM(Document Object Model)是将整个XML文档加载到内存中形成一棵树形结构,便于遍历和操作;SAX(Simple API for XML)是事件驱动的解析器,...