默认情况下 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/