java - 如何使用 XMLOutputter 禁用转义

标签 java xml jdom

我使用 XMLOutputter 编写 xml 文件,然后在 android 中使用它。写入文件时,string

<string name="sname"><u>Text</u></string>

写成

<string name="sname">&lt;u&gt;Text&lt;u&gt;</string>

我从数据库中读取“Text”,然后将其放入 jdom 文档中。然后我写文档使用

XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
Writer writer = new OutputStreamWriter(new FileOutputStream(file), "utf-8");
outputter.output(doc, writer);
writer.close();

如何防止转义并将准确的字符串从数据库写入文件? (我想要 '<',而不是 < )

最佳答案

您应该能够通过以下方式防止转义:

  • 扩展 XMLOutputer 并覆盖 escapeElementEntities 方法

    XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat()) {
            @Override
            public String escapeElementEntities(String str) {
                return str;
            }
        };
    Writer writer = new OutputStreamWriter(new FileOutputStream(file), "utf-8");
    outputter.output(doc, writer);
    writer.close();
    

我找到了这个 here

  • Format 上设置自定义 EscapeStrategy 以防止转义某些字符

无论哪种方式,您都应该小心生成有效的 XML。

希望这对您有所帮助。

关于java - 如何使用 XMLOutputter 禁用转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15359198/

相关文章:

java - 解析 Facebook 的 XML 查询响应问题

java - 为什么在级别顺序树遍历期间会在 2D 列表中返回重复项?

java - 无法找到或加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster

java - 如何从 HttpServlet 获取客户端的 MAC 地址?

html - 定义列表(<dd><dt> 等)有哪些优点,什么时候应该使用它?

xml - 如何合并 SQL Server 中 Xml 字段中的多个项目

xml - Jersey 2 (JAXB) XML 元素案例,列表不支持 XmlRootElement

java - 如何比较两个元素的等效性?

java - ArrayList<Integer> 自动将其类型更改为 ArrayList <String>

java - 为什么我无法在线程中正确删除带循环的 JDOM 节点?