2012-02-28 109 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的屬性。