0

XML ドキュメントから saxon を使用して xstl 変換を行っています。<![CDATA[<ドキュメントは標準有効な XML ではありません。そこにあるすべての要素を保持したいと考えています。

ただし、変換に .xsl ファイルを使用する

Transformer trans = TransformerFactory.newInstance().newTransformer(new StreamSource(new File("foo.xsl"));
trans.transform(new StreamSource(new File("foo.xml"), new StreamResult(new File("output.xml")));

これらの CDATA エントリが取り除かれます。どうすればこれを防ぐことができますか?

4

2 に答える 2

0

xsltで使用されるデータモデルでは、cdataセクションから発信されたテキストを区別できないため、できません。ただし、スタイルシートで、特定の結果要素をcdata内にラップするように定義できます。これは、スタイルシートの要素のcdata-section-elements属性をxsl:output使用して行われます。

于 2012-12-05T16:15:19.137 に答える
0

Andrew Welch の LexEv ツール (KernowForSaxon にバンドルされていると思います) を使用することを検討してください。これは、CDATA の開始タグと終了タグを別のもの (おそらく処理命令でしょうか?) に前処理し、XSLT データ モデルで表示されるため、アプリケーションで使用できます。

于 2012-12-05T17:21:00.710 に答える