[英]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.