2012-02-28 140 views
11

属性在我的XML我有以下几点:获取父节点XSL

<a> 
    <b> 
    <c something="false"> 
     <d> 
     <e> 
      <f>someResult</f> 
     </e> 
     </d> 
    </c> 
    </b> 
</a> 

现在在一个循环中的XSL我可以做到以下几点:

<xsl:value-of select="f"></xsl:value-of> 

但我怎么能得到c中的属性?

我试着做以下

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

,并试着父母并没有什么似乎工作。你能得到像这样的父节点吗?

而且,我不能只是做:

<xsl:value-of select="https://stackoverflow.com/a/b/c/@something"></xsl:value-of> 

由于可以有多个C的。

回答

29

要向上移动使用树“”每级,即在这种情况下可能

select="../../../@something" 

您也可以选择按名称祖先节点(约)

select="ancestor::c[1]/@something" 

http://www.stackoverflow.com/questions/3672992更多的例子

8

使用

ancestor::c[1]/@something 

这将选择名为c的第一个(从当前节点向上)名为something的属性。