代码之家  ›  专栏  ›  技术社区  ›  fastcodejava

XML格式不适用于CDATA

  •  0
  • fastcodejava  · 技术社区  · 14 年前

    我使用以下代码格式化xml字符串。但是如果里面有CDATA组件,它就不工作了,或者说它工作得很好。有什么想法吗?

    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 回复  |  直到 14 年前
        1
  •  3
  •   bdoughan    14 年前

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

    如果生成以下内容:

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

    然后在CDATA区域中引入了withspace,这实际上改变了值。