0 1

Dom4j设置编码的问题5

Dom4j里,以下两个方法有什么区别?
Document类的setXMLEncoding("GBK")和OutputFormat类的setEncoding("GBK");
如我想设置XML的声明编码为GBK,如下
<?xml version="1.0" encoding="GBK"?>
使用Document类的setXMLEncoding("GBK")不起作用,生成的文件的声明依然是UTF-8,而使用OutputFormat类的setEncoding("GBK")可以设置XML文件声明可以达到目的。求教高手,请解释一下这两个方法的区别,谢谢~
2011年4月27日 13:20

1个答案 按时间排序 按投票排序

0 0

写了一段代码你拿过去跑一下就知道区别了

public class TestXML
{
    @Test
    public void test() throws IOException
    {
        Document doc = new DefaultDocument();
        doc.addElement("root");
        
        // 这里打印出来是默认的utf-8
        System.out.println(doc.asXML());
        
        doc.setXMLEncoding("utf-16");
        
        // 这里打印出来是修改后的utf-16
        System.out.println(doc.asXML());
        
        // 这里没有设置编码格式默认保存的是utf-8,看一下dom4j的源码就知道了
        saveXML(doc, "D:\\temp\\test\\test1.xml", null);
        
        // 这里设置了所以保存以后编码格式是big5
        saveXML(doc, "D:\\temp\\test\\test2.xml", "big5");
    }
    
    private void saveXML(Document doc, String filePath, String encode)
            throws IOException
    {
        OutputFormat format = new OutputFormat();
        
        if (null != encode)
        {
            format.setEncoding(encode.toUpperCase());
        }
        
        XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(filePath),
                format);
        xmlWriter.write(doc);
        
        xmlWriter.flush();
        xmlWriter.close();
    }
}

2011年4月27日 14:29

相关推荐

    dom4j dom4j dom4j dom4j

    7. **XML编解码**:DOM4J提供了XML编码和解码的功能,可以将Java对象序列化为XML,也可以将XML反序列化为Java对象。 8. **性能优化**:DOM4J在设计上考虑了性能优化,通过高效的数据结构和算法,减少了不必要的内存...

    dom4j 写UTF-8的xml乱码问题 使用FileOutputStream

    对于初学者来说,理解字符编码的重要性以及如何在DOM4J中正确设置编码是避免此类问题的关键。 至于压缩包内的“dom4j-1.6.1.jar”,这是DOM4J库的版本1.6.1的二进制文件,用于引入到Java项目中使用。而“src”文件...

    dom4j中文彻底解决

    【DOM4J编码问题彻底解决】 DOM4J是一个流行的Java XML API,它提供了灵活和强大的方式来处理XML文档。在处理XML文档时,编码问题是一个常见的挑战,特别是当涉及到读取、写入或转换XML文件时。本文主要讨论了如何...

    Dom4j解析XML及中文问题

    在使用Dom4j解析XML文件时,可以通过`SAXReader`设置编码。以下是一个示例: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; public class Dom4...

    dom4j解析xml文件代码示例

    在`CacheInit.java`这个示例中,可能包含了利用DOM4J解析`emailTemplateConfig.xml`文件,提取或修改其中的配置信息,以初始化缓存或其他系统设置的逻辑。通过上述步骤,你可以理解并实现类似的功能。

    dom4j_apidocs.rar

    - `DocumentWriter` 和 `XMLWriter` 类用于将 DOM4J 对象转换为字符串或写入输出流,支持自定义编码和格式化选项。 8. **DOM4J 与 JDOM、JAXB 等其他 XML 库的对比** - DOM4J 相对于 JDOM 提供了更丰富的功能和更...

    XML的四种解析器(dom,sax,jdom,dom4j)原理及性能比较,超详细

    常见的 XML 解析器有 DOM、SAX、JDOM 和 DOM4J 等。每种解析器都有其特点和优缺,选择合适的解析器对应用程序的性能和开发效率有很大影响。 1. DOM 解析器 DOM(Document Object Model)是 W3C 官方标准,用于表示...

    dom4j 输出XML时中文乱码解决

    在 Dom4J 中,可以使用 `OutputFormat` 对象来设置输出编码方式。下面是一个示例代码: ```java OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("utf-8"); ``` 在上面的代码中,...

    java_dom4j架包

    5. **XML编解码**:DOM4J可以将XML文档编码为其他格式,如HTML或JSON,也可以将这些格式解码回XML。 6. **集成性**:DOM4J与许多其他Java框架,如Spring、Hibernate等,有良好的集成。例如,在Spring框架中,DOM4J...

    Dom4j API 及各种 中文 介绍文档 帮助文档

    此包有以下资源: dom4j API DOM4J 使用简介 dom4j(Version 1[1].6.1)快速入门 Matrix - 与 Java 共舞 - Dom4j 编码问题彻底解决 使用 dom4j 解析 XML

    eclipse怎么导入dom4j.doc

    - **XML编码和解码**:DOM4J提供了将XML对象编码为字符串和从字符串解码回XML对象的功能。 DOM4J因其易用性、高性能和丰富的功能而受到广泛欢迎,它是许多Java开发者处理XML文档的首选库。无论你是进行XML解析、...

    DOM4J格式化XML

    通常,这涉及到解析XML文件,创建Document对象,然后使用DOM4J提供的方法来设置格式化选项,最后将格式化后的XML输出到文件或控制台。 【标签】"源码"提示我们,这篇内容可能深入到DOM4J的源代码层面,解释了内部的...

    XML解析技术DOM4J解析

    此示例涵盖了DOM4J的基本使用流程,包括元素的创建、属性的添加、文本节点的设置以及文档的序列化和存储。 #### 结论 DOM4J是一个成熟且功能丰富的XML处理库,适用于各种规模的Java项目。它不仅提供了强大的XML...

    dom4j的属性及应用

    6. **XML编码与解码**:DOM4J提供了XML编码和解码的功能,使得XML数据可以在网络传输或存储时进行序列化和反序列化。 总的来说,DOM4J是Java开发中处理XML文档的强大工具,它的灵活性、易用性以及高性能使其在各种...

    dom4j创建xml文件

    ### DOM4J创建XML文件知识点解析 ...以上就是使用DOM4J创建XML文件的完整过程,包括环境搭建、文档创建、格式设置及异常处理等多个方面。通过本教程的学习,可以掌握使用DOM4J进行XML文件操作的基本技能。

    DOM4J

    7. **XML编解码**:DOM4J提供了对XML编码和解码的支持,可以将XML对象序列化为字符串,或者从字符串反序列化为XML对象。 8. **XPath扩展**:Jaxen支持XPath函数库,包括标准函数以及自定义函数,使查询能力更加强大...

    dom4j jaxen jar包

    DOM4J和JAXEN是两个在Java编程中处理XML文档的重要库,它们通常一起使用以实现更灵活和高效的XML操作。在这个场景中,我们讨论的是包含这两个库的jar包,即`dom4j.jar`和`jaxen.jar`。 **DOM4J库** DOM4J是一个非常...

    java中dom4j读写XML

    Java中的DOM4J库是一个非常流行的、开源的Java XML API,它提供了强大的XML处理功能,包括XML的读取、创建、修改以及写入。DOM4J是基于DOM模型的,但相比标准的Java DOM,它提供了更加简洁和高效的API,使得开发者在...

    dom4j

    此外,通过设置正确的字符集编码,可以避免中文乱码的问题。以下是格式化XML文档的相关代码: ```java // 使用SAXReader读取XML文件 SAXReader saxReader = new SAXReader(); Document document = saxReader.read...

Global site tag (gtag.js) - Google Analytics