Hallo,
vielen vielen Dank für Deine Hilfe!
Hier erstellt dir copy-of einfach literale Ergebniselemente und darauf hat das XSL keinen Zugriff mehr.
Mh,wie kann ich denn die kopierte XML-Struktur weiterverarbeiten in XSLT?
Mit XSLT 1.0 gar nicht. Mit XSLT 2.0 kannst du eine Variable erstellen darin die copy-of machen (damit hast du einen temporären Baum) und dann auf die Elemente mit $variableName/elementName etc. zugreifen.
Ich dachte mit <xsl:value-of select="." /> kann man die XML-Daten aus dem kopierten Knoten anzeigen lassen.
Nein, nicht in deinem Fall, weil du auf die literale Ergebniselemente keinen Zugriff mehr mit XSL hast.
Ich weiss auch nicht, was du mit copy-of an dieser Stelle erreichen willst, denn ein apply-templates (das du bereits hast) erfüllt seinen Zweck.
Zudem ergibt das Template so:
<xsl:template match="KapitelRef">
<xsl:copy-of select="//KapitelRef[@id='1']"/>
<xsl:apply-templates />
</xsl:template>
auch keinen Sinn.
Du kannst gleich ein:
<xsl:template match="KapitelRef[@id='1']">
<xsl:apply-templates />
</xsl:template>
machen oder einfach an der gewünschten Stelle z.B. ein:
<xsl:apply-templates select="//KapitelRef[@id='1']" />
wenn dein Template dazu so aussieht:
<xsl:template match="KapitelRef">
<xsl:apply-templates />
</xsl:template>
aufrufen.
Grüße
Thomas