java - 如何禁用 XStream 中不必要的转义?

标签 java xml xstream

默认情况下 XStream 会不必要地转义 > , " ……等等

有没有办法禁用它(并且只转义 < , & )?

最佳答案

这是默认 PrettyPrintWriter 的结果。就个人而言,我喜欢同时转义 < 和 >。它使输出看起来更平衡。

如果您想要规范化的 XML 输出,您应该使用 Java 中提供的 C14N API。

如果流式内容包括 XML,CDATA 是更好的选择。这是我的做法,

XStream xstream = new XStream(
           new DomDriver() {
               public HierarchicalStreamWriter createWriter(Writer out) {
                   return new MyWriter(out);}});
String xml = xstream.toXML(myObj);

    ......

public class MyWriter extends PrettyPrintWriter {
    public MyWriter(Writer writer) {
        super(writer);
    }

    protected void writeText(QuickWriter writer, String text) { 
        if (text.indexOf('<') < 0) {
            writer.write(text);
        }
        else { 
            writer.write("<[CDATA["); writer.write(text); writer.write("]]>"); 
        }
    }
}

关于java - 如何禁用 XStream 中不必要的转义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2891305/

相关文章:

java - Java 验收测试的最佳实践

java - 如何从 log4j.xml 的 .properties 文件中获取动态值

java - xstream:将对象映射到 xml(不包括一个字段)

java - 使用 xstream 生成子类从 xml 解码

java - tomcat执行外部java程序失败

java - JAVA音频数据流0s

java - 我的php脚本已连接,但android studio不会使用它。没有可见的错误输出

xml模式格式

java - JAXB - 如何在没有 XSD 的情况下解码 XML,其中包含没有包装器的列表

java - 值在模式方面不是有效的