繁体   English   中英

Java输出XML文件和CDATA

[英]Java output XML file and CDATA

我遇到了javax.xml.transform.Transformer类及其setOutputProperty方法的问题。 我正在尝试获取XML输出

   <name>
  <text>XXXXXXXXXX</text>
</name>
<questiontext format="html">
  <text><![CDATA[YYYYYYYYYYY]]></text>
</questiontext>

但使用:

        Transformer trans = transfac.newTransformer();
    trans.setOutputProperty(OutputKeys.CDATA_SECTION_ELEMENTS, "text");

导致两个文本节点都被CDATA标签嵌入,如下所示:

    <name>
  <text><![CDATA[XXXXXXXXXX]]></text>
</name>
<questiontext format="html">
  <text><![CDATA[YYYYYYYYYYY]]></text>
</questiontext>

所以我想我需要一种方法来指定文本元素的父级,但我还没有找到一种方法,并且javadocs没有指定使用哪种表示法。 此外,我无法更改输出XML格式。

您不能 - OutputKeys.CDATA_SECTION_ELEMENTS输出属性对应于<xsl:output>的XSLT cdata-section-elements属性,并且只允许您根据QNames定义元素,而不是匹配表达式。

但是,因为<foo>text</foo><foo><![CDATA[text]]></foo>就XML解析器而言是相同的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM