XML格式不适用于CDATA

时间:2010-09-10 19:34:54

标签: java xml

我使用以下代码来格式化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>

1 个答案:

答案 0 :(得分:3)

输出对我来说是正确的:

<named-query name="aaaa"> 
  <query><![CDATA[ 
asasasasasasasa 
]]></query> 
</named-query>

如果生成以下内容:

<named-query name="aaaa"> 
    <query>
        <![CDATA[ 
            asasasasasasasa 
        ]]>
    </query> 
</named-query>

然后你已经在CDATA部分引入了withspace,这实际上正在改变这个值。