Como selecionar a avó de um nó usando xslt

Estou em uma situação em que só posso testar o nó filho, mas preciso aplicar tags aos avós desse nó filho.

Eu tentei usar:

<xsl:call-template name="grandparent" select="parent::parent::node()"/>

e:

<xsl:call-template name="grandparent" select="ancestor::node [@nameofgrandparentnode]"/>

Mas nem funciona.

O nível do nó dos avós não é fixo, então acho que também não posso usar [@ level = #]. Qualquer idéia sobre como selecioná-lo seria muito apreciada.

EDIT: - Esta parte foi publicada como uma nova pergunta:

xslt seleciona o nó da avó, dependendo do valor do atributo do nó da neta

A seleção do nó usando as sugestões abaixo funcionou. Obrigado! No entanto, eu também preciso testar pelo atributo do nó dos avós ou netos.

Eu tentei:

<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>

No entanto, o modelo "dois" sempre é chamado e "" é sempre inserido. Mesmo para nós netos cujo valor de atributo não é igual a 'attrValue'.

Estou faltando alguma coisa aqui?

questionAnswers(2)

yourAnswerToTheQuestion