Wie kann ich eine genaue Kopie eines xml-Knotens Kinder mit XSLT?
Frage
Mein problem ist, dass meine XML-Dokument enthält Ausschnitte von XHTML, die innerhalb es, und indem Sie es durch ein XSLT-ich möchte es zum Rendern dieser snippets ohne mangeln Ihnen.
Ich habe versucht, das einwickeln der snippets in einem CDATA-aber es funktioniert nicht, da weniger als und größer als übersetzt werden < und > im Gegensatz zu echo direkt.
Was ist der XSL-erforderlich ist, dies zu tun?
Lösung
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
Dies ist als die "Identitäts-Transformation" bezeichnet in der XSLT-Spezifikation .
Andere Tipps
Ich lief in diesem Problem und das Kopie-of ist sicherlich die am einfachsten zu bedienen. Die Identität arbeitet, aber das ist 5 Zeilen Code und müssten Sie eine solche Vorlage nennen, nicht einfach definieren, wie in Ihrem XSLT-Dokument ist (sonst werden Sie wahrscheinlich nicht bekommen, was Sie in Ihrer Ausgabe erwartet.)
Mein Hauptproblem war tatsächlich den Inhalt eines Tags zu kopieren, und nicht den Tag selbst. Es ist eigentlich sehr einfach zu lösen, aber es hat mich ein wenig Zeit, um es herauszufinden (vielleicht, weil QtXmlPatterns ziemlich viel stürzt ab!)
So werden die folgenden Kopien der Tag hier benannt und alle seine Kinder:
<xsl:copy-of select="this/tag/here"/>
Aber die meisten oft Sie wollen nicht zu tun, weil
<xsl:copy-of select="this/tag/here/*"/>
Das kopiert alle im Tag gefunden Kinder namens
Ihr xhtml Unter der Annahme ist in einem Element YYY
http://www.dpawson.co.uk/xsl/sect2 /N1930.html erklärt Optionen
xsl: copy-of