为什么不返回 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>
</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]/..)"/>
为什么我无法使用以下 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>
</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]/..)"/>