`
砺雪凝霜
  • 浏览: 156641 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

xml解析之(二) - dom4j解析xml

阅读更多

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

}

}

分享到:
评论

相关推荐

    DOM4J jar包 xml解析 所有的dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1包 导入直接使用

    1. **解析XML**:DOM4J可以读取XML文件,将其转换为一个树形结构,即Document对象。解析器有SAX和DOM两种模式,SAX是事件驱动的,适用于大文件,而DOM则将整个文档加载到内存中,适合小文件。 2. **创建XML**:DOM4...

    xml解析器-----dom4j.jar

    DOM4j类包,已经打包,放在工程项目的BIN下

    dom4j---xml解析jar包

    **DOM4J——XML解析库详解** XML(eXtensible Markup Language)作为一种标记语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java环境中,解析XML文档时,我们通常会遇到各种库,其中DOM4J是一个非常流行...

    dom4j解析xml详解

    ### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...

    XML四种解析方式------DOM SAX JDOM DOM4J

    DOM解析器将整个XML文档加载到内存中,形成一个树形结构,称为DOM树。每个XML元素、属性、文本等都被表示为树中的节点。这种解析方式的优点是可以方便地通过节点关系进行遍历和修改,但缺点是占用内存大,尤其对于...

    xml解析器-dom4j的支持包_ 教程

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。...

    XML解析-dom4j.jar-jdom.jar

    在Java编程中,解析XML文档通常需要借助于特定的库,如dom4j和jdom。这两个库都是Java平台上处理XML的优秀选择。 dom4j是一个功能强大的开源XML处理库,提供了灵活且高效的API。它不仅支持DOM模型,还支持SAX...

    JAVA XML dom4j-1.6.1

    - DOM4J支持两种解析XML文档的方式:SAX(Simple API for XML)和DOM(Document Object Model)。SAX是事件驱动的解析器,适用于大文件,而DOM则将整个XML文档加载到内存中,适合小文件或内存充足的情况。 3. **...

    xml-dom4j解析工具类

    这个“xml-dom4j解析工具类”显然是为了简化XML文档操作而设计的,它利用DOM4J库来处理XML数据。 首先,让我们详细了解一下DOM4J的核心概念。DOM4J提供了一个灵活的API,以树形结构表示XML文档。在DOM(Document ...

    dom4j 解析(读取) xml 节点数据

    要开始解析XML文件,首先需要导入DOM4J的相关包: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; ``` 接下来,我们将创建...

    java dom4j解析xml

    Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得开发者能够方便地读取、写入、修改以及操作XML文件。DOM4J是Java中一个非常强大的XML处理库,它结合了DOM、SAX和JDOM的优点,同时也...

    dom4j 解析写入xml

    1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件

    java解析XML dom4j dom4j-1.6.1.jar

    Java解析XML时,dom4j是一个非常流行的库,它提供了灵活且强大的API来处理XML文档。dom4j-1.6.1.jar是这个库的一个版本,发布于2005年,它支持XML的读取、写入、操作以及查询功能。在本文中,我们将深入探讨dom4j的...

    XML解析技术DOM4J解析

    ### XML解析技术DOM4J解析 #### DOM4J解析概览 DOM4J是一种高性能、功能强大且极其易于使用的Java XML API,它最初是作为JDOM的一个智能分支发展起来的,自2000年下半年开始持续开发。DOM4J不仅在功能上超越了基本...

    xmldom4j解析

    在“jar包执行20190331.rar”文件中,可能包含了一个Java项目,该项目使用DOM4J库解析XML文件并执行相关业务逻辑。执行此类项目通常涉及以下步骤: 1. 将jar包解压,找到主类(包含main方法)。 2. 使用Java命令行...

    dom4j解析xml文件的压缩包

    5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...

    dom4j解析XML所需jar包

    Jaxen可以与多种XML解析器(如DOM、DOM4J、JDOM等)协同工作,提供跨平台的XPath支持。 总结来说,DOM4J是一个全面且易用的XML处理工具,广泛应用于Java开发中。通过`dom4j-1.6.1.jar`和`jaxen-1.1.1.jar`这两个jar...

    DOM4J xml解析工具

    1. **解析XML文档**:DOM4J可以使用SAX或DOM方式解析XML文件。SAX是事件驱动的解析器,适用于大文件,而DOM解析会将整个文档加载到内存,适合小文件。DOM4J的灵活性在于,可以根据需求选择合适的解析策略。 2. **...

    XML文件解析的_DOM4J-最新jar

    1. **XML解析**:DOM4J支持多种解析方式,如DOM、SAX和StAX。其中,DOM(Document Object Model)是将整个XML文档加载到内存中形成一棵树形结构,便于遍历和操作;SAX(Simple API for XML)是事件驱动的解析器,...

Global site tag (gtag.js) - Google Analytics