为什么不返回父母的父母?

  • 本文关键字:父母 返回 xslt xslt-2.0
  • 更新时间 :
  • 英文 :


为什么我不能用以下xsl:

检索父的父的名字
<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]的父级名称,您应该这样做:

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

最新更新