次のようなXMLファイルがあります
<?xml version="1.0" encoding="UTF-8"?>
<domData CHECK_STATE="P">
<K>
<![CDATA[F]]>
</K>
<P>
<![CDATA[F]]>
</P
<L>
<![CDATA[F
CC
DD
GEJ]]>
</L>
<D/>
<E/>
<A>TEST</A>
<B>
<![CDATA[<root><iA>DATA</iA><iB>DDDD</iB><</root>]]>
</B>
</domData>
そして私は次のような変化を遂げました
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*">
<xsl:sort select="name()"/>
</xsl:apply-templates>
<xsl:apply-templates select="node()">
<xsl:sort select="name()">
</xsl:sort>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
上記の変換により、すべてのCDATAが削除され、内部のxmlエンティティがエスケープされます。
要素の数が膨大で、異なるXMLファイルにも同じxsltを使用したいので、「cdata-section-elements」を使用できません。
私の問題は、CDATAタグと内部xmlをそのままにしておく必要があることです。出来ますか?どうも