如何在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("]]>"); } } } 

Cdata对我不起作用,最后我必须使用Apache StringUtils。

 StringUtils.replaceEach(xml, new String[]{"<",""","'",">"}, new String[]{"<","\"","'",">"}); 

XStream不会自己编写XML,它使用各种库(“驱动程序”?)来执行此操作。

只选择一个没有的。 该列表在他们的网站上。 我想它默认会使用XOM。