sydys: template when test

Beitrag lesen

Hallo!

Ich habe eine Zugriffsfrage zu XSL, hoffe jemand kann weiterhelfen.
Ich verarbeite mit einem Stylesheet XML Daten, die wie folgt aussehen:

Es gibt Datensätze vom Typ "h" und Typ "u"

<root>
<datensatz typ="h">
<feld nr="1">111</feld>
...
</datensatz>
...
<datensatz typ="u">
<feld nr="1">222</feld>
<feld nr="2">111</feld>
<feld nr="3">schlüsselwort</feld>
</datensatz>
...
</root>

Ich möchte nun den Datensatz vom Typ "h" nur dann verarbeiten, wenn dessen id=111 Inhalt im Feld nr "2" eines Datensatzes vom Typ "u" ist UND gleichzeitig DIESER Datensatz "u" im Feld nr "3" das Schlüsselwort=$schlüsselwort enthält.
Wie kann ich dies als Frage formulieren, wenn ich mich innerhalb des Stylesheets im Template zu Datensatz Typ "h" befinde? Realisiere ich dies mit einem doppelten Punkt?

<xsl:template match="datensatz[(@typ='h')]">
    xsl:choose
      <xsl:when test="//datensatz[(@typ='u')]/feld[@nr='2'] =feld[(@nr='1')] and //datensatz[(@typ='u')]/feld[@nr='2']=feld[(@nr='1')]/../feld[@nr='3']=$schlüsselwort">

....

Hoffe, das ist nicht zuviel Wirrwarr ;-)

Vielen Dank + Grüße !!!
Frank