`
SpringLin
  • 浏览: 139975 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Dom4j官网解释实例

阅读更多


Dom4j是一个易于使用的,开源的库,在Java平台上与XML,XPath,XSLT协同工作。使用Java集合框架,全面支持DOM,SAX,JAXP。
官方网站:http://dom4j.org


1.将XML文件转换为一个Document对象

import java.net.URL;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;

public class Foo {

    public Document parse(URL url) throws DocumentException {
        SAXReader reader = new SAXReader();
        Document document = reader.read(url);
        return document;
    }
}

2.很多方法用于操作Document,可以返回标准的Java迭代器

public void bar(Document document) throws DocumentException {

        Element root = document.getRootElement();

        // iterate through child elements of root
        for ( Iterator i = root.elementIterator(); i.hasNext(); ) {
            Element element = (Element) i.next();
            // do something
        }

        // iterate through child elements of root with element name "foo"
        for ( Iterator i = root.elementIterator( "foo" ); i.hasNext(); ) {
            Element foo = (Element) i.next();
            // do something
        }

        // iterate through attributes of root
        for ( Iterator i = root.attributeIterator(); i.hasNext(); ) {
            Attribute attribute = (Attribute) i.next();
            // do something
        }
     }

3.快速循环

  如果你需要遍历一个很大的XML文档,可以使用快速循环(递归)来改善性能。可以避免为每一次循环都创建一个迭代器对象。

    public void treeWalk(Document document) {
        treeWalk( document.getRootElement() );
    }

    public void treeWalk(Element element) {
        for ( int i = 0, size = element.nodeCount(); i < size; i++ ) {
            Node node = element.node(i);
            if ( node instanceof Element ) {
                treeWalk( (Element) node );
            }
            else {
                // do something....
            }
        }
    }

4.创建一个新的XML文档

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class Foo {

    public Document createDocument() {
        Document document = DocumentHelper.createDocument();
        Element root = document.addElement( "root" );

        Element author1 = root.addElement( "author" )
            .addAttribute( "name", "James" )
            .addAttribute( "location", "UK" )
            .addText( "James Strachan" );
       
        Element author2 = root.addElement( "author" )
            .addAttribute( "name", "Bob" )
            .addAttribute( "location", "US" )
            .addText( "Bob McWhirter" );

        return document;
    }
}

5.将XML文档写入文件

  通过write()方法将一个XML文档写入文件是最简单的方式。
    FileWriter out = new FileWriter( "foo.xml" );
    document.write( out );
   
  如果你想改变输出的格式,比如美观的格式(含缩进)和压缩的格式(不含缩进),可以使用XMLWriter类。

import org.dom4j.Document;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class Foo {

    public void write(Document document) throws IOException {

        // lets write to a file
        XMLWriter writer = new XMLWriter(
            new FileWriter( "output.xml" )
        );
        writer.write( document );
        writer.close();


        // Pretty print the document to System.out
        OutputFormat format = OutputFormat.createPrettyPrint();
        writer = new XMLWriter( System.out, format );
        writer.write( document );

        // Compact format to System.out
        format = OutputFormat.createCompactFormat();
        writer = new XMLWriter( System.out, format );
        writer.write( document );
    }
}

6.XML和String之间的相互转换

  通过asXML()方法,你可以将一个Document,Attribute或Element对象转换成一个包含XML文本的字符串。
        Document document = ...;
        String text = document.asXML();

  同样,通过DocumentHelper.parseText()方法,你也可以方便地将一个字符串形式的XML转换成一个Document对象。
        String text = "<person> <name>James</name> </person>";
        Document document = DocumentHelper.parseText(text);

分享到:
评论

相关推荐

    dom4j解析xml实例

    **DOM4J解析XML实例详解** 在Java编程中,处理XML文档是一项常见的任务。DOM4J是一个非常流行的、强大的Java XML API,它提供了灵活且高效的方式来解析、创建、修改XML文档。本文将深入探讨如何使用DOM4J进行XML...

    dom4j 解析xml实例

    在这个实例中,我们将深入探讨如何使用DOM4J解析XML文件,并通过`Dom4jTest1.java`这个示例程序来理解其工作原理。 首先,我们需要了解XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据。...

    dom4j dom4j实例

    **DOM4J详解与实例应用** DOM4J是一款强大的Java XML处理库,它提供了一种灵活且高效的方式来处理XML文档。DOM4J以其简洁的API、高性能和丰富的功能,成为了许多Java开发者在处理XML时的首选工具。在这个实例中,...

    dom4j_dom4j1.6.1安装包_

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效的API,使得XML的解析、创建、查询和修改变得更为简单。在本文中,我们将深入探讨DOM4J 1.6.1版本的安装及其在Maven项目中的应用。 首先,DOM4J...

    dom4j读写xml文档实例

    在这个实例中,我们将深入理解DOM4J库如何帮助我们处理XML文档,并通过实际操作来熟悉其核心功能。 XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。...

    dom4j常用操作实例

    此文档包含了Dom4J常用的操作(对于一般的应用足够了)和实例,可模仿开发

    利用dom4j读写xml实例xmldemo

    本实例"xmldemo"将向我们展示如何利用DOM4J进行XML的读写操作。 首先,理解DOM4J的核心概念。DOM4J使用了Document对象来表示整个XML文档,Element代表XML的元素节点,Attribute代表属性,Text代表文本内容。通过...

    dom4j的Java工程

    在"dom4jdemo"这个子文件夹中,很可能是包含了一个或多个Java源代码文件,演示了如何使用DOM4J进行XML操作的实例。这些代码通常会包含导入DOM4J库的语句,如`import org.dom4j.Document;`和`import org.dom4j....

    dom4j操作xml实例

    本实例将详细解释如何使用DOM4J进行XML文档的操作,包括读取、写入、更新和删除XML元素。 首先,我们需要了解XML的基本结构,XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据。DOM4J通过解析...

    dom4j自动解释xml文件

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得解析、创建、修改XML文件变得简单。在这个主题中,我们将深入探讨DOM4J如何递归地解析XML文件,并将解析结果映射到动态bean或Map中。 ...

    Dom4J-Xml实例

    在这个"Dom4J-Xml实例"中,我们将深入探讨如何利用Dom4J进行XML的基本操作,如创建XML文档、添加XML节点等。 首先,我们需要了解XML的基础知识。XML(Extensible Markup Language)是一种可扩展标记语言,用于存储...

    DOM JDOM dom4j 实例源码

    3. **dom4j实例**: - 解析XML:`DocumentFactory`创建`Document`,`XMLReader`读取XML文件。 - 查找元素:`selectNodes()`使用XPath表达式选择元素,`elementIterator()`遍历元素集合。 - 修改XML:`setText()`...

    dom4j jar包和简单实例

    下面是一个使用DOM4J的简单实例,展示了如何读取和解析XML文件: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public ...

    Dom4J与SAX解析实例

    1. **Dom4J基本概念**:Dom4J支持Element(元素)、Attribute(属性)、Text(文本)、Namespace(命名空间)等核心概念,提供了丰富的操作接口。 2. **Dom4J解析XML**:首先,通过`DocumentBuilderFactory`创建`...

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

    接下来,我们将创建一个`SAXReader`实例,它是DOM4J中的解析器,用于读取XML文件: ```java SAXReader reader = new SAXReader(); ``` 然后,使用`reader`读取XML文件并获取`Document`对象,`Document`代表整个XML...

    使用dom4j 和本地dom 解析xml 文件

    在Java中,解析XML文件是常见的任务,通常有DOM(Document Object Model)和DOM4J两种方式。下面我们将详细探讨这两种解析方法。 DOM解析方式是将整个XML文件加载到内存中,形成一棵DOM树,每个节点代表XML文档的一...

    dom,dom4j,sax 解析xml文件实例

    本文将深入探讨DOM、DOM4J和SAX三种常用的XML解析方法,并结合具体的实例进行详细讲解。 首先,DOM(Document Object Model)是W3C组织推荐的一种XML解析标准。它将整个XML文档加载到内存中,构建一个树形结构,...

    DOM、JDOM、DOM4J解析XML实例

    ### DOM、JDOM、DOM4J解析XML实例 #### DOM解析XML DOM(Document Object Model)是一种树形结构的数据模型,用于表示XML或HTML文档。它允许程序在内存中加载整个文档,并通过提供的API来访问和修改文档中的任何...

    dom4j关于xml读写的例子里面还有dom4j的jar包

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而直观的API,使得XML的读取、写入、遍历以及修改变得容易。在这个压缩包中,你将找到一个DOM4J用于XML操作的例子,这对于初学者来说是一个很好的学习...

Global site tag (gtag.js) - Google Analytics