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

49

我想知道如何在XSLT中从子节点读取父节点的属性。

代码:

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

XSLT:

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

100

您可以使用".."返回上一级目录。因此:

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

1
是的,我刚才编写了//@attr1并且它对我起作用了...无论如何感谢您的帮助。 - Wondering
25
“//@attr1”这个表达式将扫描整个文档(即使找到第一个匹配项也不会停止)。这非常低效,可能会选择错误的@attr1(如果你在其他地方使用了该属性)。@Adam Batkin的解决方案更为高效,减少了意外选择错误值的可能性。 - Mads Hansen
@ Mads:感谢您的意见和信息,我会实施相同的方案。 - Wondering

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接