`

dom4j设置编码两种方法(一种不好使的原因)

XML 
阅读更多
1.设置编码失效,打开时为ANSI
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
format.setSuppressDeclaration(true);
format.setIndent(true); //设置是否缩进
format.setIndent("   "); //以空格方式实现缩进
format.setNewlines(true); //设置是否换行
XMLWriter writer = new XMLWriter(new FileWriter(path+"1.xml"),format);
writer.write(doc);
writer.close();

2.设置编码成功
XMLWriter writer = new XMLWriter(new FileOutputStream(path));
writer.write(doc);
writer.close();


    在上面的代码中输出使用的是FileWriter对象进行文件的输出。这就是不能正确进行文件编码的原因所在,java中由Writer类继承下来的子类没有提供编码格式处理,所以dom4j也就无法对输出的文件进行正确的格式处理。这时候所保存的文件会以系统的默认编码对文件进行保存,在中文版的window下java的默认的编码为GBK,也就是所虽然我们标识了要将xml保存为utf-8格式但实际上文件是以GBK格式来保存的,所以这也就是为什么能够我们使用GBK、GB2312编码来生成xml文件能正确的被解析,而以UTF-8格式生成的文件不能被xml解析器所解析的原因。
分享到:
评论

相关推荐

    java_dom4j架包

    3. **事件驱动解析**:DOM4J支持SAX和StAX这两种事件驱动的XML解析器,可以在读取大型XML文件时避免内存消耗过大。同时,它也支持DOM解析,虽然DOM解析在处理大型文件时可能效率较低。 4. **XML写作**:DOM4J提供了...

    DOM4J

    2. **构建XML**:DOM4J提供了一种简单的方式创建XML文档,包括元素(Element)、属性(Attribute)、文本节点(Text)等,允许动态构建和修改XML结构。 3. **XPath支持**:通过集成Jaxen,DOM4J可以执行XPath表达式...

    DOM4J/JDOM对XML的操作

    在`create()`方法中,展示了如何使用DOM4J创建XML文档。首先,创建了根元素`root`,然后创建了子元素`fruit`,并为其添加了属性`fruitNo`。接着,创建了`name`和`color`子元素,并分别设置了文本内容。接下来,创建...

    dom4j-1.6 的jar包以及中文处理问题

    DOM4J解析XML主要有两种方式:SAX和DOM。SAX是基于事件驱动的解析,适用于大文件;DOM是将整个XML文件加载到内存,形成一棵树,适用于小文件或内存充足的情况。 1. **SAX解析**: - 使用`SAXReader`类,通过监听器...

    使用dom4j从XML配置文件中生成菜单

    【使用DOM4J从XML配置文件中生成菜单】的知识点主要涉及XML解析、DOM4J库的使用以及Java中的 SWT 菜单体系。以下是详细解释: 1. **XML解析**:XML(eXtensible Markup Language)是一种用于标记数据的语言,常用于...

    dom4j和jdom解析XML小例子

    本文将深入探讨如何使用dom4j和jdom两种流行的Java库来解析XML文档,并通过具体的代码示例来展示它们的应用。 ### DOM4J DOM4J(Document Object Model for Java)是一个开放源代码的Java API,用于处理XML文档。...

    xml基础和Dom4j使用

    XML(eXtensible Markup Language)是一种标记语言,用于存储和传输结构化数据。它的语法规范严谨,确保了数据的可读性和机器可处理性。XML文档由一系列元素构成,这些元素可以包含文本数据和子元素,且元素的命名有...

    通过dom4j解析xml字符串(示例代码)

    DOM4J解析XML字符串主要有两种方式:使用`DocumentHelper.parseText()`和`SAXReader`。 **1. 使用`DocumentHelper.parseText()`** 这是一种简单且直接的方法,适用于小型XML字符串。以下是使用此方法的示例代码: ...

    dom4j读取XML文件详解

    在dom4j中,读取XML文件可以使用SAXReader或DOMReader两种方式。SAXReader是基于事件驱动的XML解析器,可以处理大型XML文件,具有高效率和低内存占用等特点。DOMReader是基于文档对象模型的XML解析器,可以将整个XML...

    java使用dom4j解析xml配置文件实现抽象工厂反射示例

    在Java开发中,DOM4J是一个非常流行的XML处理库,它提供了一套API来解析、创建和修改XML文档。在本示例中,DOM4J被用来读取XML配置文件,实现一个抽象工厂模式和反射机制的结合。这种方式使得代码更具灵活性和可扩展...

    javaEE总结

    本篇将重点讨论两种主要的XML解析方式——DOM和SAX,以及Java API for XML Processing(JAXP)和dom4j库的使用。 1. DOM解析: Document Object Model(DOM)是一种树形结构,它代表整个XML文档,允许程序和脚本...

    HtmlDom解析组件(C#)

    3. **查询选择器**:HtmlAgilityPack支持XPath和LINQ to XML两种查询方式,用于选取DOM树中的特定节点。XPath是一种强大的路径语言,用于在XML文档中查找信息。而LINQ to XML则提供了更符合C#语法的查询方式。 4. *...

    JDK自带xml解析器dom+sax

    JDK(Java Development Kit)提供了两种内置的XML解析器:DOM(Document Object Model)和SAX(Simple API for XML),它们各有特点,适用于不同的场景。 1. DOM解析XML: DOM解析器将整个XML文档加载到内存中,...

    XML基础知识

    - **DOM4J**:这是一个Java库,提供了一种轻量级且功能强大的方式来处理XML。相比于DOM,DOM4J在性能和易用性方面都有显著提升,尤其适用于中小型的XML文件处理。 在选择XML处理方式时,通常遵循以下原则:对于小...

    DBMS_XMLDOM DBMS_XMLPARSER DBMS_XMLQUERY 文档

    这个包包含了像DBMS_XMLPARSER.parse()这样的函数,可以将XML文本解析成DOM节点,还提供了DBMS_XMLPARSER.setProperty()来设置解析器的属性,如编码方式等。通过DBMS_XMLPARSER,开发者可以更好地控制XML的解析过程...

    DOM基础及php读取xml内容操作的方法_.docx

    DOM(Document Object Model)是一种标准,用于表示XML或HTML文档的结构化表示,它将这些文档视为一棵由节点构成的树形结构。每个元素、属性、文本等都是一个节点,通过DOM API,我们可以对这些节点进行操作,实现对...

    Digester两种解析方式

    Digester提供了两种主要的解析方式,即规则硬编码和独立的规则文件,这两种方法各有其特点和适用场景。 1. 规则硬编码: 在硬编码方式中,开发者直接在代码中创建和设置Digester的规则。这些规则定义了如何处理XML...

    学校实训毕业商用项目-织梦响应式自适应手机端会员中心(两种编码).zip

    这个压缩包文件“学校实训毕业商用项目-织梦响应式自适应手机端会员中心(两种编码).zip”包含了用于学校实训和毕业项目的资源,特别是针对前端开发的学习与实践。织梦(DedeCMS)是一个流行的开源内容管理系统,在...

    文字游戏dom

    【标题】:“文字游戏DOM”是一种基于Web的互动故事体验,通过JavaScript操作DOM(文档对象模型)实现。这种游戏通常由简单的HTML、CSS和JavaScript组成,以文本为主,结合用户选择来推进故事情节。 【描述】:描述...

    JS学习笔记(BOM,DOM,字符串方法等)

    JavaScript(简称JS)是一种广泛用于客户端Web开发的脚本语言,它主要运行在浏览器环境中,提供了丰富的功能,包括处理BOM(Browser Object Model)和DOM(Document Object Model)。本篇笔记将详细介绍数组方法、...

Global site tag (gtag.js) - Google Analytics