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:

xslt wählt den übergeordneten Knoten in Abhängigkeit von einem Attributwert seines untergeordneten Knotens aus

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?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage