Cómo seleccionar el abuelo de un nodo usando xslt

Estoy en una situación en la que solo puedo probar el nodo secundario, pero tengo que aplicar etiquetas al abuelo de este nodo secundario.

He intentado usar:

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

y:

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

Pero tampoco funciona.

El nivel del nodo abuelo no es fijo, por lo que creo que tampoco puedo usar [@ level = #]. Cualquier idea sobre cómo seleccionarla sería muy apreciada.

EDITAR: - Esta parte se ha publicado como una nueva pregunta:

xslt seleccionar nodo abuelo dependiendo del valor de atributo de su nodo nieto

Seleccionando el nodo usando las sugerencias de abajo funcionó. ¡Gracias! Sin embargo, también necesito probar por el atributo del nodo abuelo o nieto.

He intentado:

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

Sin embargo, siempre se llama a la plantilla "dos" y siempre se inserta "". Incluso para los nodos nietos cuyo valor de atributo no es igual a 'attrValue'.

¿Me estoy perdiendo de algo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta