4

我使用 XMLOutputter 编写 xml 文件以在 android 中使用它。写入文件时,字符串

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

写成

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

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

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

如何防止转义并将确切的字符串从数据库放入文件?(我想要'<',不在&lt;那里)

4

1 回答 1

4

您应该能够通过以下方式防止逃逸:

  • 扩展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();
    

我在这里找到了这个

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

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

希望这可以帮助。

于 2013-03-12T11:38:28.283 回答