Hallo,
kann man den Inhalt von copy-of in einem Parameter speichern und dann an ein anderes Template übergeben?
Kann man schon, übergeben auch, aber nicht mit XSLT 1.0.
Aber das habe ich schon bei der letzen Frage zu diesem Problem gesagt.
Hier wird der Inhatl von dem Knoten kopiert. Das funktioniert:
<xsl:template match="KapitelRef">
<xsl:copy-of select="." />
</xsl:template>
Ja, das funktioniert: wie gesagt, du kopierst hiermit das Element <KapitelRef> und deren Unterknoten im dem Ergebnissbaum (in die Ausgabe) als literale Ergebniselemente.
Wenn ich aber um copy-of ein call-template und darum dann ein with-param schachtele , dann funktioniert es nicht mehr:
Nein, es funktioniert nicht, weil es in XSLT 1.0 nicht möglich ist, temporäre Teilbäume zu benützen.
<xsl:template match="KapitelRef">
<xsl:call-template name="KnotenKaRefKopie">
<xsl:with-param name="pKnotenKaRefKopie" >
<xsl:copy-of select="."/>
</xsl:with-param>
</xsl:call-template>Ich würde gern in copy-of den Inhalt von einem Knoten speichern, um den Inhalt dann in einem anderen Knoten / anderes Template weiterzubearbeiten.
Wenn ich mich recht erinnere, du verwendest bereits Erweiterungen (extensions) z.B. für die ausgabe von mehreren Ergebnisdokumenten. Dann kannst du auf die node-set() Funktion von exslt zurückgreifen:
http://exslt.org/exsl/functions/node-set/index.html
Mit Variablen habe ich es auch schon probiert.
Mit globalen Variablen kann ich den Knoten nicht selektieren und mit der lokalen Variable kann ich den Inhalt nicht in einem anderen Template abrufen.
Die andere Möglichkeit:
<xsl:template match="KapitelRef">
<xsl:apply-templates select="." mode="dingsda" />
...
...
<xsl:template match="KapitelRef" mode="dingsda">
<!-- dieverse Anweisungen -->
----------------------
oder:
<xsl:template match="KapitelRef">
<xsl:call-template name="KnotenKaRefKopie">
<xsl:with-param name="pKnotenKaRefKopie" select=".//p">
...
...
<xsl:template name="KnotenKaRefKopie">
<xsl:param name="pKnotenKaRefKopie" />
<xsl:for-each select="$pKnotenKaRefKopie">
<!-- diverse Anweisungen -->
------------------------
Grüße
Thomas