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

mik*_*e g 7 java xml xstream

默认情况下>,XStream不必要地逃脱," 等等.

有没有一种方法来禁用此(只有逃避<,&)?

ZZ *_*der 7

这是默认的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("]]>"); 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)