我使用以下代码来格式化xml字符串。但是如果它内部有CDATA组件它不起作用,otehrwise它工作正常。有什么想法吗?
OutputFormat format = new OutputFormat(document);
format.setLineWidth(65);
format.setIndenting(true);
format.setIndent(2);
Writer out = new StringWriter();
XMLSerializer serializer = new XMLSerializer(out, format);
serializer.serialize(document);
return out.toString();
编辑:它没有正确格式化下面的xml:
<named-query name="aaaa">
<query>
<![CDATA[
something
]]>
</query>
</named-query>
打印:
<named-query name="aaaa">
<query><![CDATA[
asasasasasasasa
]]></query>
</named-query>
答案 0 :(得分:3)
输出对我来说是正确的:
<named-query name="aaaa">
<query><![CDATA[
asasasasasasasa
]]></query>
</named-query>
如果生成以下内容:
<named-query name="aaaa">
<query>
<![CDATA[
asasasasasasasa
]]>
</query>
</named-query>
然后你已经在CDATA部分引入了withspace,这实际上正在改变这个值。