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

Won*_*ing 45 xslt xpath

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

<A>
  <b attr1="xx">
    <c>
    </c>
  </b>
</A>
Run Code Online (Sandbox Code Playgroud)

XSLT:

<xsl:template match="c">
  <xsl:value-of select="attribute of b node">
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

Ada*_*kin 95

你可以用" .." 来"升级"一个级别.所以:

<xsl:value-of select="../@attr1"/>
Run Code Online (Sandbox Code Playgroud)

  • @Wondering - 表达式"// @ attr1"将扫描整个文档(即使找到第一个匹配也不会停止).这是非常低效的,可以抓错了@ attr1(如果你在其他地方有这个属性).@Adam Batkin的解决方案更有效,不太可能意外选择错误的值. (23认同)