2008-09-11 2 views
3

私の問題は、自分のXML文書にXHTMLのスニペットが含まれていることです.XSLTを渡している間に、スニペットをマングリングさせずにレンダリングしたいと思います。XSLTを使用してxmlノードの子の正確なコピーを作成するにはどうすればよいですか?

CDATAでスニペットを折り返してみましたが、小文字と小文字は<と>に直接エコーされるのではなく、変換されているため動作しません。

これにはどのようなXSLが必要ですか?

答えて

7
<xsl:template match="@*|node()"> 
    <xsl:copy> 
    <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
</xsl:template> 

を説明しますXSLT specificationにあります。

2

私はその問題に遭遇しましたが、コピーは確かに使いやすいです。アイデンティティは機能しますが、これは5行のコードであり、XSLTドキュメントのように定義するだけでなく、そのようなテンプレートを呼び出す必要があります(そうしないと、おそらく出力に期待したものが得られません)。

私の主な問題は、タグそのものではなく、タグの内容をコピーすることでした。これは、実際に解決するのは非常に簡単だが、それはそれを把握するために、私には少し時間がかかりました

ので、以下のコピーここでは、その子供たちのすべての名前付きタグ(QtXmlPatternsはかなりクラッシュするので多分!):

<xsl:copy-of select="this/tag/here"/> 

ほとんどの場合、<ここに>が実際にはコンテナであるため、出力しないでください。

<xsl:copy-of select="this/tag/here/*"/> 

このコピーここ< >という名前のタグで見つかったすべての子供:その場合は、単にこれを行うことができます。

関連する問題