使用Dom4j,要把一个Dom中的数据写入到文件非常简单,API如下:
public void write(Writer writer) throws IOException;
因此,假如我们要把一个Document写入到c:\test.xml文件中,可以简单的使用下面的代码即可:
java.io.Writer wr= new java.io.FileWrite(filename);
doc.write(wr);
wr.close();//注意,必须要执行close()方法,才会实现真正的写入
这种用法也是Dom4j所推荐我们使用的非常简单的方法。然而,当我们的dom中包含有中文字符数据的
时候,这种方法写入的xml文档却无法使直觉打开。会提示类似如下的错误:
org.dom4j.DocumentException: invalid byte 1 of 1-byte UTF-8 sequence (0xb2) Nested
exception: invalid byte 1 of 1-byte UTF-8 sequence (0xb2)
at org.dom4j.io.SAXReader.read(SAXReader.java:484)
at org.dom4j.io.SAXReader.read(SAXReader.java:343)
我们可以看生成的xml文件编码,内容是utf-8的,但文件格式确是ANSI的
原因分析:
由于FileWriter默认的输出编码是ANSI编码,而Dom4j中的wirte方法提供的内容实际是以UTF-8保存
的,因此造成了包括中文字符的XML文件无法正常阅读。
解决方法:
不能使用简单的FileWriter,而应该是使用一个能指定具体输出编码的Writer,在JDK的io包中,
OutputStreamWriter可以指定输出编码。
正确的代码如下:
java.io.OutputStream out=new java.io.FileOutputStream(fileName);
java.io.Writer wr=new java.io.OutputStreamWriter(out,"UTF-8");
doc.write(wr);
wr.close();
out.close();
简化一下可以写成下面的样式:
java.io.Writer wr=new java.io.OutputStreamWriter(new java.io.FileOutputStream(fileName),"UTF-8");
doc.write(wr);
wr.close();
分享到:
相关推荐
然而,在使用 Dom4J 输出 XML 文档时,中文字符可能会出现乱码问题。这是因为 Dom4J 的默认编码方式可能不支持中文字符。解决这个问题的方法是将输出编码方式设置为 UTF-8。 设置输出编码方式 ------------------ ...
本文将深入探讨如何使用Dom4j解析XML以及解决中文乱码的问题。 首先,让我们了解Dom4j的基本用法。在解析XML文件时,通常会使用`DocumentBuilderFactory`和`DocumentBuilder`来创建一个`Document`对象,然后通过这...
通过这种方式,我们可以确保DOM4J生成的XML文件采用正确的字符编码,避免了可能出现的乱码问题。同时,这也提醒我们在使用任何处理文本输出的API时,都要注意指定正确的编码,以保证跨平台和多语言环境下的兼容性。 ...
此包有以下资源: dom4j API DOM4J 使用简介 dom4j(Version 1[1].6.1)快速入门 Matrix - 与 Java 共舞 - Dom4j 编码问题彻底解决 使用 dom4j 解析 XML
此外,通过设置正确的字符集编码,可以避免中文乱码的问题。以下是格式化XML文档的相关代码: ```java // 使用SAXReader读取XML文件 SAXReader saxReader = new SAXReader(); Document document = saxReader.read...
提供的`Dom4j解析XML及中文问题(普通下载).pdf`可能详细介绍了在DOM4J中处理中文字符的步骤和示例。而`dom4j-1.6.1`则是DOM4J的1.6.1版本的jar包,包含了DOM4J的所有类和方法,可以直接引入到项目中使用。 在实际...
### DOM4j解析XML文件格式详解 #### 一、DOM4j概述与环境搭建 DOM4j(Document Object Model for XML)是一款Java平台上的开源XML处理库,它提供了灵活、高效且易于使用的API来处理XML数据。DOM4j支持DOM、SAX、...
并且在Java代码中,使用UTF-8编码读写文件,避免乱码问题。 7. **TestDOM4j** 压缩包中的`TestDOM4j`文件可能是一个测试程序,它展示了如何应用上述操作。通过阅读和运行这个程序,你可以更好地理解DOM4J在实际...
### Dom4j解析XML及其中文问题解决 #### 一、Dom4j简介 Dom4j是一种用于处理XML的Java库,它提供了一种简洁而强大的API来读取、写入和操作XML数据。自2001年首次发布以来,Dom4j因其直观的接口和高效的性能而在...
对于XML中的中文问题,Dom4j通常能够正确处理UTF-8编码的XML文档。如果在处理中文字符时遇到乱码,可能需要检查XML文档的编码声明是否正确,或者确保读写操作中使用的字符编码与XML文档一致。 此外,Dom4j还提供了...
《j2ee dom4j JavaScript struts2帮助文档》是一个包含多个技术领域的综合资源包,主要涉及Java企业级开发中的核心技术和工具。该压缩包包含了以下几个关键文件: 1. **J2EE研究文集.chm**:这是一部关于Java企业版...
DOM4J是一个非常流行的Java库,用于处理XML文档。它提供了强大的API,使得XML的读写操作变得简单而高效。这篇文档主要介绍了如何使用DOM4J库进行XML的读写和修改。 首先,我们来看一下写XML的示例。在这个例子中,`...
在处理汉字转英文时,可能会遇到的问题包括编码格式不一致导致的乱码,或者是某些特殊汉字无法准确转换的情况。ping4j控件可能已经考虑并解决了这些问题,提供了一种稳定和高效的解决方案。开发者在使用过程中应仔细...
### DOM4j解析XML知识点详解 #### 一、DOM4j简介 DOM4j是一个用于处理XML的Java库,它提供了强大的API来进行XML文档的创建、解析、查询和修改等功能。DOM4j的设计简洁直观,使得开发者能够轻松地进行XML处理任务。...
以上代码示例展示了如何使用DOM4J在Java JSP环境中生成包含中文字符的XML文档。注意,为了防止中文乱码,需要在整个过程中保持UTF-8编码的一致性,包括JSP页面的编码设置、文件的保存编码以及HTTP响应的Content-Type...
1. 创建 `InputSource` 对象,设置其编码为 "UTF-8",以确保正确处理中文字符,避免乱码问题。 2. 使用 `SAXReader` 实例化一个 XML 解析器,`SAXReader` 是基于事件驱动的解析器,效率较高。 3. 调用 `reader.read...
在XML数据交换中,选择以XML字符串的形式进行传输有其便利之处,因为它占用空间小,且易于在网络上传输。...同时,注意处理XML中的编码问题,特别是当涉及到中文字符时,确保正确设置编码以避免乱码问题。
- **引入Apache Ant库**:这是一个较为常见的解决方案,Apache Ant库不仅能够帮助解决中文乱码问题,还包含了完整的DOM解析库(如dom4j),可以用来处理XML文档等。然而,这样做也会导致应用程序的体积增大,因为Ant...
基于Java创建XML(无中文乱码)过程解析 Java是当前最流行的编程语言之一,在软件开发中广泛应用。...我们学习了如何使用Dom4j库来创建XML文件,并解决了中文乱码问题。希望本文能够对大家的学习和工作产生帮助。
在JavaScript中,中文字符是Unicode编码,可以通过`charCodeAt()`方法获取每个字符的Unicode值。但是,直接使用这个方法无法得到对应的拼音,因为它返回的是数字而非汉字的拼音表示。 为了将中文字符转换为拼音,...