3

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 形式を変更する立場にありません。

4

1 に答える 1

2

できません。OutputKeys.CDATA_SECTION_ELEMENTS出力プロパティは の XSLTcdata-section-elements属性に対応しており<xsl:output>、一致式ではなく、QName に関してのみ要素を定義できます。

しかし、XML パーサーに関する限り、<foo>text</foo>とは同一であるため、問題にはなりません。<foo><![CDATA[text]]></foo>

于 2012-10-11T16:37:09.630 に答える