wuz: Variable in template match

Hi!

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

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

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

liefert bei mir immer token "$" probs

danke und lg!

  1. 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 />