为什么不返回 parent 的 parent?

Why is it not returning the parent's parent?

为什么我无法使用以下 xsl 检索 parent 的 parent 的名称:

 <xsl:value-of select="name(../$names[1])"/>

xml :

    <root>
        <hello>
            <name>A</name>
            <name>B</name>
        </hello>
        <bye>
            <name>C</name>
            <name>D</name>
        </bye>
    </root>

xsl :

  <xsl:template match="root">
        <xsl:call-template name="test">
            <xsl:with-param name="names" select="descendant::name"/>
        </xsl:call-template>
    </xsl:template>
    
    <xsl:template name="test">
        <xsl:param name="names" />

        <xsl:value-of select="$names[1]"/>
        <xsl:text> : </xsl:text>
        <xsl:value-of select="name($names[1])"/>
        <xsl:text> : </xsl:text>
        <xsl:value-of select="name(../$names[1])"/>
        <xsl:text>&#xa;</xsl:text>

        <xsl:if test="count($names) > 1">
            <xsl:call-template name="test">
                <xsl:with-param name="names" select="$names[position() > 1]"/>
            </xsl:call-template>
        </xsl:if>

    </xsl:template>

当前输出:

A : name : 
B : name : 
C : name : 
D : name : 

期望的输出:

A : name : hello
B : name : hello
C : name : bye
D : name : bye

要获取 $names[1] 的 parent 的名称,您应该这样做:

<xsl:value-of select="name($names[1]/..)"/>