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)的结果:
<?xml version="1.0" encoding="UTF-8"?> <DSTreeRoot text="root根" open="true"><DsTree text="节点1" open="true"/><DsTree text="节点2" open="true"/></DSTreeRoot>
我们可以看到,使用第二种方法,输出并没有进行格式化,并且输出结果进行了html的转换。详细你可以查看dom4j的源码,在格式化String方法中,默认采用转换方法。
最后在提一点,方法format.setEncoding("gb2312")可以设置输出内容的字符集,也包含了xml文件头声明<?xml version="1.0" encoding="gb2312"?> 。
作者Blog:http://blog.csdn.net/guipei/
分享到:
相关推荐
【文件名称】"UML入门教程.pptx"看似与主题"DOM4J格式化XML"不直接相关,但可以假设它是博文作者提供的补充材料,可能是为了帮助读者更好地理解XML处理背后的逻辑,通过UML(统一建模语言)来展示类图、序列图或其他...
8. **转换与格式化**:DOM4J可以将XML Document对象转换为String或OutputStream,同时提供XML格式化的功能,使得输出的XML更易于阅读。 9. **JAXB集成**:DOM4J可以与Java的默认XML绑定框架JAXB进行集成,方便地将...
在Java开发中,XML是一种常见的数据交换格式,用于存储和传输结构化数据。当我们需要将XML字符串解析并映射到Java Bean对象时,dom4j是一个常用的库。本篇文章将详细探讨如何使用dom4j库实现这个过程。 首先,dom4j...
在Java中,DOM4J提供了一种灵活的方式来操作XML文档,包括解析、遍历、修改节点以及序列化回XML字符串。 **DOM4J的基本概念:** 1. **Element(元素)**:XML文档中的每一个标签都是一个Element,它包含属性、文本...
写入XML文件,通常使用`XMLWriter`或`OutputFormat`来格式化输出。例如: ```java SAXReader reader = new SAXReader(); Document document = reader.read(new File("input.xml")); // 对document进行操作... ...
DOM4J是Java中一个非常优秀的XML处理库,它提供了丰富的API,使得操作XML文件变得简单而高效。在本文中,我们将详细探讨如何利用DOM4J库来读取XML文件。 1. **安装DOM4J** 要使用DOM4J,首先需要将其添加到你的...
4. 转换与序列化:DOM4J可以将XML文档转换为其他格式,如HTML或文本,也可以将Java对象序列化为XML。此外,它还能反序列化XML回Java对象,实现数据交换。 5. 建立XML文档:DOM4J提供了简单的方法来创建新的XML文档...
5. **转换和序列化**:DOM4J可以将XML文档转换为其他格式,如HTML或者DOM,也可以将XML对象序列化回字符串或文件。 6. **文档结构**:DOM4J的Document、Element、Attribute、Namespace等类提供了清晰的文档结构表示...
在Java领域,XML是数据交换和配置文件的常用格式,DOM4J则是一个重要的工具,帮助开发者高效地与XML交互。 XML(eXtensible Markup Language)是一种标记语言,它定义了如何存储和传输结构化数据。其特点是自描述性...
在实际开发中,DOM4J常用于读取配置文件、解析XML格式的数据交换,或者与Web服务交互。由于其优秀的性能和丰富的功能,DOM4J 1.6.1版本至今仍被许多开发者所采用,特别是在那些需要高效处理XML的项目中。 总之,DOM...
同时,DOM4J还提供了`Writer`接口,可以将XML文档写入文件或流,实现XML数据的持久化。 总结来说,DOM4J 2.1.3是一个强大且易用的XML处理工具,它的API文档和源代码为开发者提供了便利的学习和开发环境。无论你是...
在IT行业中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,广泛应用于各种领域,如Web服务、配置文件等。而Dom4j是一个流行的Java库,用于处理XML文档,提供了丰富的API来进行XML的读取...
例如,`XMLWriter`用于格式化输出XML,而`SAXWriter`则用于快速无格式的输出。 7. **XML文档修改**:DOM4J允许对XML文档进行修改,如添加、删除或修改元素、属性等。这在处理动态生成或更新XML文件的应用场景中非常...
`XMLWriter`提供了格式化的输出控制,例如缩进和换行。以下是如何写入XML文件的示例: ```java OutputFormat format = OutputFormat.createPrettyPrint(); XMLWriter writer = new XMLWriter(new FileWriter(...
在Java开发中,XML(eXtensible Markup Language)是一种常用的数据交换格式,用于存储和传输结构化数据。DOM4J是一个非常灵活的Java XML API,它提供了丰富的功能,包括读取、创建、修改和查询XML文档。然而,在...
### 使用DOM4j解析XML文件:提升开发效率与代码可读性 在现代软件开发中,XML(Extensible Markup Language)是一种广泛使用的数据交换格式,它以人类可读的文本形式存储结构化信息。然而,如何高效、准确地解析XML...
在深入探讨如何使用DOM4J库来解析XML文件之前,我们先简要了解DOM4J的基本概念及其在Java开发环境中的重要性。DOM4J是一个轻量级、高性能且易于使用的Java库,用于处理XML文档。它提供了类似于DOM、SAX和JDOM的API,...
5. **转换和序列化**:DOM4J可以将XML文档转换为其他格式,如HTML、DOM或流,也可以将Java对象序列化为XML。 6. **XPath表达式操作**:DOM4J提供了XPath编译和执行的能力,允许开发者动态构建和执行XPath表达式,...
`XMLWriter`允许自定义格式化选项,如缩进和换行。 4. **元素操作** - 添加元素:`Element parentElement.addElement("childElement")`。 - 获取元素:`Element child = parentElement.element("childElement")`...