Java XML格式不适用于CDATA
我使用以下代码格式化xml字符串。但如果里面有CDATA组件,它就不起作用了,或者说它工作得很好。有什么想法吗Java XML格式不适用于CDATA,java,xml,Java,Xml,我使用以下代码格式化xml字符串。但如果里面有CDATA组件,它就不起作用了,或者说它工作得很好。有什么想法吗 OutputFormat format = new OutputFormat(document); format.setLineWidth(65); format.setIndenting(true); format.setIndent(2); Writer out = new StringWriter(); XMLSerializer serializer = new XMLSeri
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>
我认为输出正确:
<named-query name="aaaa">
<query><![CDATA[
asasasasasasasa
]]></query>
</named-query>
如果生成以下内容:
<named-query name="aaaa">
<query>
<![CDATA[
asasasasasasasa
]]>
</query>
</named-query>
然后您在CDATA部分引入了Wispace,这实际上改变了值。在我看来,输出是正确的:
<named-query name="aaaa">
<query><![CDATA[
asasasasasasasa
]]></query>
</named-query>
如果生成以下内容:
<named-query name="aaaa">
<query>
<![CDATA[
asasasasasasasa
]]>
</query>
</named-query>
然后您在CDATA区域中引入了Wispace,这实际上改变了值。实际上是另一种方式!其实是另一种方式!我认为第二个是更正确的格式,假设CDATA中的换行是因为终端宽度,第二个是CDATA块的正确格式。第一个例子是不正确的。为了在CDATA中打印XML,请看一看我认为第二个格式更正确,假设CDATA中的换行是由于终端宽度的原因,第二个是CDATA块的正确格式。第一个示例不正确。要在CDATA中打印XML,请查看