私のXMLでは、次のようになっています。
<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="/a/b/c/@something"></xsl:value-of>
Cの倍数が存在する可能性があるため。
ツリーを上に移動するには、レベルごとに「..」を使用します。つまり、このインスタンスではおそらく
select="../../../@something"
名前で祖先ノードを選択することもできます(およそ)
select="ancestor::c[1]/@something"
さらなる例については http://www.stackoverflow.com/questions/3672992 を参照してください
使用:
ancestor::c[1]/@something
これにより、something
という名前の最初の(現在のノードから上に向かって)祖先のc
という名前の属性が選択されます。