Wie man den Großelternteil eines Knotens mit xslt @ auswäh
Ich bin in einer Situation, in der ich nur auf den untergeordneten Knoten testen kann, aber Tags auf die Großeltern dieses untergeordneten Knotens anwenden muss.
Ich habe versucht mit:
<xsl:call-template name="grandparent" select="parent::parent::node()"/>
und
<xsl:call-template name="grandparent" select="ancestor::node [@nameofgrandparentnode]"/>
Aber beides funktioniert nicht.
Die Ebene des Großelternknotens ist nicht festgelegt, daher kann ich auch nicht [@ level = #] verwenden. Über Ideen zur Auswahl würde ich mich sehr freuen.
EDIT: - Dieser Teil wurde als neue Frage veröffentlicht:
Die Auswahl des Knotens anhand der Vorschläge von unten hat funktioniert. Vielen Dank! Ich muss jedoch auch anhand des Attributs des Großeltern- oder Enkelknotens testen.
Ich habe es versucht
<xsl:template name"one" match="grandparentnode">
<Tag1>
<xsl:apply-templates select="parentNode" />
</Tag1>
</xsl:template>
<xsl:template name="two" match="grandparentnode[*/*/@grandchildattr='attrValue']">
<Tag2>
<xsl:apply-templates select="parentNode" />
</Tag2>
</xsl:template>
Das Template "two" wird immer aufgerufen und "" wird immer eingefügt. Auch für Enkelknoten, deren Attributwert ungleich 'attrValue' ist.
Habe ich hier etwas verpasst?