如何从XSLT中的子节点读取父节点的属性

问题描述:

只想知道如何从XSLT中的子节点读取父节点的属性。 代码:如何从XSLT中的子节点读取父节点的属性

<A> 
    <b attr1="xx"> 
    <c> 
    </c> 
    </b> 
</A> 

XSLT:

<xsl:template match="c"> 
    <xsl:value-of select="attribute of b node"> 
</xsl:template> 

您可以使用 “..” 走出去 “上升” 的水平。所以:

<xsl:value-of select="../@attr1"/> 
+1

耶刚刚编码// @ attr1,它为我工作...无论如何感谢您的帮助。 – Wondering 2009-09-11 08:54:20

+22

@Wondering - 表达式“// @ attr1”将扫描整个文档(即使找到第一个匹配项也不会停止)。这是非常低效的,并可能抓住错误的@ attr1(如果你在其他地方有这个属性)。 @Adam Batkin的解决方案更有效,不太可能意外地选择了错误的值。 – 2009-09-11 11:05:53

+0

@Mads:感谢您的输入和信息,将实施相同 – Wondering 2009-09-14 07:50:40