Thomas J.S.: Variable in template match

Beitrag lesen

Hallo,

Kann ich mit template match nicht auf externe dokumente zugreifen, weil das mit der abarbeitung der knoten nicht konformg eht?

Doch kannst du, aber so: <xsl:template match="$teilnehmer//Nachname"> geht das nicht. Wert von 'match' muss ein 'Pattern' (d.i. quasi eine untermenge von XPath-Ausdrücken) sein und darin sind keine Variablen erlaubt.

also z.B.:
<xsl:variable name="teilnehmer" select="document('Teilnehmer.xml')"/>

<xsl:template match="$teilnehmer//Nachname">

Entweder:
<xsl:template match="document('Teilnehmer.xml')//Nachname">

ode besser:

<xsl:template match="Nachname">
 ... das was du für Nachname machen willst ...
</xsl:template>

und an der gewünschten Stelle im XSL:

<xsl:apply-templates select="$teilnehmer//Nachname">

Grüße
Thomas

PS: falls du vorhast, später den Wert von $teilnehmer dynamisch ändern zu wollen. Das kannst du nicht, weil der Wert von Variablen in XSL nicht geändert werden kann. Dafür gibt es <xsl:param />