`
liwenshui322
  • 浏览: 519041 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

dom4j相关操作

阅读更多

要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/
目前最新dom4j包下载地址:http://nchc.dl.sourceforge.net/sourceforge/dom4j/dom4j-1.6.1.zip

解开后有两个包,仅操作XML文档的话把dom4j-1.6.1.jar加入工程就可以了,如果需要使用XPath的话还需要加入包jaxen-1.1-beta-7.jar.

以下是相关操作:

一.Document对象相关

1.读取XML文件,获得document对象.
            SAXReader reader = new SAXReader();
            Document document = reader.read(new File("input.xml"));

2.解析XML形式的文本,得到document对象.
            String text = "<members></members>";
            Document document = DocumentHelper.parseText(text);
3.主动创建document对象.
            Document document = DocumentHelper.createDocument();
            Element root = document.addElement("members");// 创建根节点
二.节点相关

1.获取文档的根节点.
Element rootElm = document.getRootElement();
2.取得某节点的单个子节点.
Element memberElm=root.element("member");// "member"是节点名
3.取得节点的文字
String text=memberElm.getText();
也可以用:
String text=root.elementText("name");这个是取得根节点下的name字节点的文字.

4.取得某节点下名为"member"的所有字节点并进行遍历.
List nodes = rootElm.elements("member");

for (Iterator it = nodes.iterator(); it.hasNext();) {
   Element elm = (Element) it.next();
   // do something
}
5.对某节点下的所有子节点进行遍历.
            for(Iterator it=root.elementIterator();it.hasNext();){
                Element element = (Element) it.next();
                // do something
            }
6.在某节点下添加子节点.
Element ageElm = newMemberElm.addElement("age");
7.设置节点文字.
ageElm.setText("29");
8.删除某节点.
parentElm.remove(childElm);// childElm是待删除的节点,parentElm是其父节点
三.属性相关.
1.取得某节点下的某属性
            Element root=document.getRootElement();   
            Attribute attribute=root.attribute("size");// 属性名name
2.取得属性的文字
            String text=attribute.getText();
也可以用:
String text2=root.element("name").attributeValue("firstname");这个是取得根节点下name字节点的属性firstname的值.

3.遍历某节点的所有属性
            Element root=document.getRootElement();   
            for(Iterator it=root.attributeIterator();it.hasNext();){
                Attribute attribute = (Attribute) it.next();
                String text=attribute.getText();
                System.out.println(text);
            }
4.设置某节点的属性和文字.
newMemberElm.addAttribute("name", "sitinspring");
5.设置属性的文字
            Attribute attribute=root.attribute("name");
            attribute.setText("sitinspring");
6.删除某属性
            Attribute attribute=root.attribute("size");// 属性名name
            root.remove(attribute);
四.将文档写入XML文件.
1.文档中全为英文,不设置编码,直接写入的形式.
XMLWriter writer = new XMLWriter(new FileWriter("output.xml"));
writer.write(document);
writer.close();
2.文档中含有中文,设置编码格式写入的形式.
            OutputFormat format = OutputFormat.createPrettyPrint();
            format.setEncoding("GBK");    // 指定XML编码       
            XMLWriter writer = new XMLWriter(new FileWriter("output.xml"),format);
           
            writer.write(document);
            writer.close();
五.字符串与XML的转换
1.将字符串转化为XML
String text = "<members> <member>sitinspring</member> </members>";
Document document = DocumentHelper.parseText(text);
2.将文档或节点的XML转化为字符串.
            SAXReader reader = new SAXReader();
            Document document = reader.read(new File("input.xml"));           
            Element root=document.getRootElement();               
            String docXmlText=document.asXML();
            String rootXmlText=root.asXML();
            Element memberElm=root.element("member");
            String memberXmlText=memberElm.asXML();
六.使用XPath快速找到节点.
读取的XML文档示例
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>MemberManagement</name>
<comment></comment>
<projects>
    <project>PRJ1</project>
    <project>PRJ2</project>
    <project>PRJ3</project>
    <project>PRJ4</project>
</projects>
<buildSpec>
    <buildCommand>
      <name>org.eclipse.jdt.core.javabuilder</name>
      <arguments>
      </arguments>
    </buildCommand>
</buildSpec>
<natures>
    <nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

使用XPath快速找到节点project.
public static void main(String[] args){
    SAXReader reader = new SAXReader();
   
    try{
      Document doc = reader.read(new File("sample.xml"));
     
      List projects=doc.selectNodes("/projectDescription/projects/project");
     
      Iterator it=projects.iterator();
     
      while(it.hasNext()){
        Element elm=(Element)it.next();      
        System.out.println(elm.getText());
      }
     
    }
    catch(Exception ex){
       ex.printStackTrace();
    }
}

分享到:
评论

相关推荐

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

    导入后,可以按照DOM4J提供的API进行编程,快速实现XML的读写操作。 总之,DOM4J作为一款强大的XML处理工具,为Java开发者提供了丰富的功能和良好的性能,是处理XML文档的理想选择。无论是小型项目还是大型企业级...

    dom4j相关操作源码

    本篇将详细探讨DOM4J在操作XML时涉及的关键知识点。 首先,DOM4J的核心在于其对XML文档的建模,它将XML文档映射为一系列的Java对象,包括Document、Element、Attribute、Namespace等。这些对象通过对象关系映射...

    dom4j相关包,资源

    综上所述,DOM4J是一个全面的XML处理工具,适用于各种XML相关的开发需求。无论你是新手还是经验丰富的开发者,理解和掌握DOM4J的基本概念和使用方法都能显著提升XML处理效率。通过提供的`dom4j-1.6.1`包,你可以深入...

    dom4j_dom4j1.6.1安装包_

    DOM4J是一个强大的Java库,专门用于...无论是创建XML文档、查询XML结构还是进行XML数据操作,DOM4J都能提供简洁、高效的API。在安装和使用过程中,确保正确添加依赖并熟悉其核心API,将有助于提升XML处理的效率和质量。

    dom4j dom4j dom4j dom4j

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单易行。在Java世界中,DOM4J是与DOM、SAX和JDOM等其他XML处理库并驾齐驱的一个选择,尤其在处理...

    dom4j_1.6.1.jar dom4j_2.1.0.jar

    这个列表只包含了一个条目"xml",可能意味着压缩包中包含的是与XML相关的文件或资源,可能是XML示例文件、测试用例或者与DOM4J处理XML相关的配置文件。 总结来说,DOM4J是一个强大的XML处理库,提供了丰富的API和...

    dom4j-1.6.1 与 dom4j-2.0.0-ALPHA

    总的来说,DOM4J是XML处理领域中的一个重要工具,无论是在简单的数据提取还是复杂的文档操作中,都能提供强大而灵活的支持。了解并掌握DOM4J的使用,对于任何涉及XML的Java开发者来说都是非常有价值的技能。

    dom4j dom4j1.6 dom4j最新版

    通过理解并熟练使用DOM4J,开发者可以更高效地处理XML相关的任务,提高代码的可维护性和可读性。同时,由于其开源和社区活跃,DOM4J还拥有丰富的文档和社区支持,遇到问题时可以方便地找到解决方案。

    dom4j-2.1.3.zip

    在"dom4j-2.1.3.jar"文件中,包含了DOM4J库的所有类和方法,可以用于构建、解析和操作XML文档。这个版本的DOM4J在前一版本的基础上进行了优化和更新,以适应不断发展的Java技术和XML应用场景。 "dom4j-2.1.3-...

    dom4j-2.0.3.zip

    了解并掌握DOM4J,对于提升XML相关项目的开发效率至关重要。通过阅读DOM4J的API文档(如`dom4j-2.0.3-javadoc.jar`),结合源码学习(`dom4j-2.0.3-sources.jar`),可以深入理解其实现原理并更好地利用它来解决实际...

    使用Maven管理项目,实现DOM4j操作XML文件

    DOM4j则是一个强大的Java库,用于处理XML文档,提供了丰富的API来实现XML的读取、写入、修改等操作。在这个示例中,我们将深入探讨如何利用Maven管理和DOM4j来操作XML文件。 首先,让我们了解一下Maven。Maven是...

    dom4j所依赖的所有jar包

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而直观的API,使得开发者...通过结合`dom4j-1.6.1.jar`和`jaxen-1.1-beta-6.jar`这两个jar包,开发者可以充分利用DOM4J的功能来实现各种XML相关的任务。

    所有版本的dom4j工具包

    标题提到的"所有版本的dom4j工具包"表明这是一个包含多版本DOM4J库的集合,可能包括了从早期到较新的一些版本,如dom4j-1.4.jar、dom4j-1.6.1.jar和dom4j-1.5.2.jar。这些不同版本的库可能分别对应于不同的功能特性...

    dom4j需要的包

    DOM4J的名字来源于“Document Object Model for Java”,它采用面向对象的设计思想,提供了丰富的接口和类来操作XML。 在标题中提到的“dom4j需要的包”,主要包括了两个JAR文件和一个学习帮助文档。这两个JAR文件...

    DOM4j操作xml文件

    DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件

    DOM4J 的使用

    DOM4J 是一个基于 Java 的 XML 解析包,用于解析和操作 XML 文档。它提供了一个简洁的 API,方便用户快速地解析和操作 XML 文档。DOM4J 采用了 Java 集合框架,完全支持 DOM、SAX 和 JAXP。 二、DOM4J 的主要接口 ...

    dom4j 2.1.1

    在实际使用中,DOM4J通常包含以下核心组件和操作: - **Element**:XML文档的基本结构单元,代表XML的元素。通过Element接口,你可以获取或设置元素的属性、文本内容以及子元素。 - **Attribute**:元素上的属性,...

    DOM4J帮助文档及使用教程

    8. **事件处理**:如果需要在解析或操作XML时执行某些动作,可以注册监听器或处理器,DOM4J提供了相应的API。 9. **高级功能**:包括命名空间管理、DTD处理、实体引用、XML Schema支持等进阶话题。 10. **性能优化...

    org.dom4j.jar

    1. **文档模型**:DOM4J提供了一种面向对象的XML文档模型,允许开发者以树形结构来操作XML文档。例如,可以创建、修改、删除XML元素、属性等。 2. **XPath支持**:DOM4J支持XPath表达式,这是对XML文档进行查询的...

    dom4j.jar 下载

    4. **使用**:在你的代码中导入DOM4J的类,如`org.dom4j.Document`、`org.dom4j.Element`等,然后使用提供的API进行XML操作。 DOM4J的核心功能包括: - **解析XML**:DOM4J支持SAX和DOM解析方式,可以根据需求选择...

Global site tag (gtag.js) - Google Analytics