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

Dom4j入门指南(3)

阅读更多

Dom4j入门指南(3

快速遍历

 

如果你处理的XML文件很大,这个时候建议你最好使用dom4j提供的快速遍历方法,这个可以满足你对性能的需求,因为dom4j快速遍历不会为每层循环都创建一个Iterator对象。是不是说的云里雾里的,其实我也晕了,不怕,咋来动个手就明白了。

 

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....
            }
        }
    }

  

 

 

Node node = element.node(i);关键是这一句,我们直接通过element下标就可以遍历节点,而避免了为此创建Iterator对象,这就节省了大量遍历时间和资源。是不是很灵活,嚎。。。(板砖)

 

创建XML

 

你也可以使用dom4j来创建一个XML文件。还是出招吧,总感觉不踏实,呵呵。。。

 

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

 

 

 

看的出使用dom4j创建一个XML也是相当容易哈,想要标签就addElement,想要属性就addAttribute,想要文本就addText,想要花姑娘你就add。。,等等你小子还想要什么啊,(apache大叔手里拿着板砖,恶狠狠看着这边。。。)。哈,做人不能太贪心,今天咋就要到这里吧,要不apache大叔要发火了~

 

下面是打印document对象的结果

 

<?xml version="1.0" encoding="UTF-8"?>

<root>

<author name="James" location="UK">James Strachan</author>

<author name="Bob" location="US">Bob McWhirter</author>

</root>

  

 

 

Document写入文件

 

document文件写成文件最快也是最简单的方法就是使用write(),地球人都知道哈。

 

FileWriter out = new FileWriter(“foo.xml”);

document.write(out);

 

如果你想对输出方式进行格式化输出,你可以采用平板式,也可以采用紧密式,也可以使用OutputStream来输出到对象,这时候你就要用到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 );
    }
}
 

  

 

 

分享到:
评论

相关推荐

    dom4j的使用教程

    dom4j相关知识,适合入门。 DOM4J使用起来非常简单。只要你了解基本的XML-DOM模型,就能使用。然而他自己带的指南只有短短一页(html),不过说的到挺全。国内的中文资料很少。因而俺写这个短小的教程方便大家使用...

    hibernate + spring 简化包

    通常需要复制cglib,dom4j,jakarta-commons,log4j等文件夹下的jar文件。  (4)为了编译java文件,可以找到Spring的基础类,将Spring.jar文件的路径添加到环境变量CLASSPATH中。当然,也可以使用ANT工具,但无须...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    4.DOM则为脚本和对象的交流提供一个公共平台,并将结果显示在浏览器窗口。 如果任何一个部分发生错误,都不会得到正确结果。 好了,看到这里,我们已经对XML是如何工作的有一个整体的大致的概念。通过这一章的...

    PHP函数参考手册大全

    入门指引 1. 简介 2. 简明教程 II. 安装与配置 3. 安装前需要考虑的事项 4. Unix 系统下的安装 5. Mac OS X 系统下的安装 6. Windows 系统下的安装 7. PECL 扩展库安装 8. 还有问题? 9. 运行时配置 III. 语言参考 ...

    中文版PHP使用手册

    入门指引 1. 简介 2. 简明教程 II. 安装与配置 3. 安装前需要考虑的事项 4. Unix 系统下的安装 5. Mac OS X 系统下的安装 6. Windows 系统下的安装 7. PECL 扩展库安装 8. 还有问题? 9. 运行时配置 III. 语言参考 ...

    php手册PHP5研究室编无乱码版本chm

    J. 保留字列表 K. 资源类型列表 L. 支持的协议/封装协议列表 M. 可用过滤器列表 N. 所支持的套接字传输器(Socket Transports)列表 O. PHP 类型比较表 P. 解析器代号列表 Q. 关于本手册 R. 开放出版许可...

    PHP手册(带评论版-2008-03-14).part2.rar

    J. 保留字列表 K. 资源类型列表 L. 支持的协议/封装协议列表 M. 可用过滤器列表 N. 所支持的套接字传输器(Socket Transports)列表 O. PHP 类型比较表 P. 解析器代号列表 Q. 关于本手册 R. 开放出版许可协议 S. ...

    PHP手册(带评论版-2008-03-14).part1.rar

    J. 保留字列表 K. 资源类型列表 L. 支持的协议/封装协议列表 M. 可用过滤器列表 N. 所支持的套接字传输器(Socket Transports)列表 O. PHP 类型比较表 P. 解析器代号列表 Q. 关于本手册 R. 开放出版许可协议 S. ...

    PHP5 开发手册 简体中文手册

    入门指引 1. 简介 2. 简明教程 II. 安装与配置 3. 安装前需要考虑的事项 4. Unix 系统下的安装 5. Mac OS X 系统下的安装 6. Windows 系统下的安装 7. PECL 扩展库安装 8. 还有问题? 9. 运行时配置 III. 语言参考 ...

    php手册.chm,php手册

    J. 保留字列表 K. 资源类型列表 L. 支持的协议/封装协议列表 M. 可用过滤器列表 N. 所支持的套接字传输器(Socket Transports)列表 O. PHP 类型比较表 P. 解析器代号列表 Q. 关于本手册 R. 开放出版许可协议 S. ...

    php帮助文档,php。chm,php必备的中文手册

    J. 函数别名列表 K. 保留字列表 L. 资源类型列表 M. 支持的协议/封装协议列表 N. 可用过滤器列表 O. 所支持的套接字传输器(Socket Transports)列表 P. PHP 类型比较表 Q. 解析器代号列表 R. 关于本手册 S. 开放...

Global site tag (gtag.js) - Google Analytics