`
liweizlw
  • 浏览: 24700 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Dom 4j 格式化xml补充

阅读更多
Dom 4j 格式化xml补充



作为一个优秀的XML framework的Dom4j,本身提供了格式化文件的一些方法,让我们看看如何可以更方便的处理。

本文涉及如何格式化xml输出,设置输出字符集,以及XMLWriter不同的writer方法的区别。



Dom4j提供的格式化xml方法:

    OutputFormat format = OutputFormat.createPrettyPrint();
    XMLWriter writer = new XMLWriter( out, format );
    writer.write( document );
    writer.close();





这里创建一个 OutputFormat 类,用来作为生成XMLWriter的参数。然后创建XMLWriter,调用 write 方法输出 格式化后的 Xml 。



如果你想得到Xml 返回的内容,而不是直接输入到output流里面,可以这样处理:

    public static String format(Document document){

        StringWriter writer = new StringWriter();

       

        OutputFormat format = OutputFormat.createPrettyPrint();

        format.setEncoding("gb2312");  

        XMLWriter xmlwriter = new XMLWriter( writer, format );

        try {

            xmlwriter.write(document);   

        } catch (Exception e) {

            e.printStackTrace();

        }

       

        return writer.toString();

    }




在这里我们创建一个StringWriter类,把XMLWriter输出到StringWriter,然后返回Xml的文本内容。



在这里也许你会很奇怪,为什么不用XMLWriter的 write(String text) 方法, 而是采用write(Document doc)方法呢,下面我们可以做一个试验。



使用write(Document doc)的结果:

<?xml version="1.0" encoding="gb2312"?>



<DSTreeRoot text="root根" open="true">

  <DsTree text="节点1" open="true"/>

  <DsTree text="节点2" open="true"/>

</DSTreeRoot>




使用write(String text)的结果:

&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;DSTreeRoot text="root根" open="true"&gt;&lt;DsTree text="节点1" open="true"/&gt;&lt;DsTree text="节点2" open="true"/&gt;&lt;/DSTreeRoot&gt;




我们可以看到,使用第二种方法,输出并没有进行格式化,并且输出结果进行了html的转换。详细你可以查看dom4j的源码,在格式化String方法中,默认采用转换方法。



最后在提一点,方法format.setEncoding("gb2312")可以设置输出内容的字符集,也包含了xml文件头声明<?xml version="1.0" encoding="gb2312"?> 。

 



作者Blog:http://blog.csdn.net/guipei/
分享到:
评论

相关推荐

    DOM4J格式化XML

    【文件名称】"UML入门教程.pptx"看似与主题"DOM4J格式化XML"不直接相关,但可以假设它是博文作者提供的补充材料,可能是为了帮助读者更好地理解XML处理背后的逻辑,通过UML(统一建模语言)来展示类图、序列图或其他...

    dom4j解析xml文件的压缩包

    8. **转换与格式化**:DOM4J可以将XML Document对象转换为String或OutputStream,同时提供XML格式化的功能,使得输出的XML更易于阅读。 9. **JAXB集成**:DOM4J可以与Java的默认XML绑定框架JAXB进行集成,方便地将...

    使用dom4j将xml字符串转换成Bean对象

    在Java开发中,XML是一种常见的数据交换格式,用于存储和传输结构化数据。当我们需要将XML字符串解析并映射到Java Bean对象时,dom4j是一个常用的库。本篇文章将详细探讨如何使用dom4j库实现这个过程。 首先,dom4j...

    java中dom4j读写XML

    在Java中,DOM4J提供了一种灵活的方式来操作XML文档,包括解析、遍历、修改节点以及序列化回XML字符串。 **DOM4J的基本概念:** 1. **Element(元素)**:XML文档中的每一个标签都是一个Element,它包含属性、文本...

    使用DOM4J对XML文件操作-添加、修改、删除、获取元素节点

    写入XML文件,通常使用`XMLWriter`或`OutputFormat`来格式化输出。例如: ```java SAXReader reader = new SAXReader(); Document document = reader.read(new File("input.xml")); // 对document进行操作... ...

    利用dom4j--读取xml文件

    DOM4J是Java中一个非常优秀的XML处理库,它提供了丰富的API,使得操作XML文件变得简单而高效。在本文中,我们将详细探讨如何利用DOM4J库来读取XML文件。 1. **安装DOM4J** 要使用DOM4J,首先需要将其添加到你的...

    dom4j-1.6.1架包,读取xml

    4. 转换与序列化:DOM4J可以将XML文档转换为其他格式,如HTML或文本,也可以将Java对象序列化为XML。此外,它还能反序列化XML回Java对象,实现数据交换。 5. 建立XML文档:DOM4J提供了简单的方法来创建新的XML文档...

    dom4j dom4j1.6 dom4j最新版

    5. **转换和序列化**:DOM4J可以将XML文档转换为其他格式,如HTML或者DOM,也可以将XML对象序列化回字符串或文件。 6. **文档结构**:DOM4J的Document、Element、Attribute、Namespace等类提供了清晰的文档结构表示...

    dom4j_dom4j1.6.1安装包_

    在实际开发中,DOM4J常用于读取配置文件、解析XML格式的数据交换,或者与Web服务交互。由于其优秀的性能和丰富的功能,DOM4J 1.6.1版本至今仍被许多开发者所采用,特别是在那些需要高效处理XML的项目中。 总之,DOM...

    DOM4J解析XML

    在Java领域,XML是数据交换和配置文件的常用格式,DOM4J则是一个重要的工具,帮助开发者高效地与XML交互。 XML(eXtensible Markup Language)是一种标记语言,它定义了如何存储和传输结构化数据。其特点是自描述性...

    dom4j-2.1.3.zip

    同时,DOM4J还提供了`Writer`接口,可以将XML文档写入文件或流,实现XML数据的持久化。 总结来说,DOM4J 2.1.3是一个强大且易用的XML处理工具,它的API文档和源代码为开发者提供了便利的学习和开发环境。无论你是...

    Dom4j解析XML及中文问题

    在IT行业中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,广泛应用于各种领域,如Web服务、配置文件等。而Dom4j是一个流行的Java库,用于处理XML文档,提供了丰富的API来进行XML的读取...

    dom4j API 用于解析XML的java库

    例如,`XMLWriter`用于格式化输出XML,而`SAXWriter`则用于快速无格式的输出。 7. **XML文档修改**:DOM4J允许对XML文档进行修改,如添加、删除或修改元素、属性等。这在处理动态生成或更新XML文件的应用场景中非常...

    dom4j读写xml文件

    `XMLWriter`提供了格式化的输出控制,例如缩进和换行。以下是如何写入XML文件的示例: ```java OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new FileWriter(...

    替换dom4j中的xml解析

    在Java开发中,XML(eXtensible Markup Language)是一种常用的数据交换格式,用于存储和传输结构化数据。DOM4J是一个非常灵活的Java XML API,它提供了丰富的功能,包括读取、创建、修改和查询XML文档。然而,在...

    使用DOM4j解析XML文件

    ### 使用DOM4j解析XML文件:提升开发效率与代码可读性 在现代软件开发中,XML(Extensible Markup Language)是一种广泛使用的数据交换格式,它以人类可读的文本形式存储结构化信息。然而,如何高效、准确地解析XML...

    dom4j所依赖的所有jar包

    5. **转换和序列化**:DOM4J可以将XML文档转换为其他格式,如HTML、DOM或流,也可以将Java对象序列化为XML。 6. **XPath表达式操作**:DOM4J提供了XPath编译和执行的能力,允许开发者动态构建和执行XPath表达式,...

    DOM4J读取XML

    在深入探讨如何使用DOM4J库来解析XML文件之前,我们先简要了解DOM4J的基本概念及其在Java开发环境中的重要性。DOM4J是一个轻量级、高性能且易于使用的Java库,用于处理XML文档。它提供了类似于DOM、SAX和JDOM的API,...

    dom4j读写xml

    `XMLWriter`允许自定义格式化选项,如缩进和换行。 4. **元素操作** - 添加元素:`Element parentElement.addElement("childElement")`。 - 获取元素:`Element child = parentElement.element("childElement")`...

Global site tag (gtag.js) - Google Analytics