1. ホーム
  2. xslt

[解決済み] XSLで親ノードの属性を取得する

2022-02-15 21:12:09

質問

私の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>

同様にparentも試してみましたが、何もうまくいかないようです。このように親ノードを取得することは可能でしょうか?

また、ただでは済まない。

<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 その他の例