実際の必要性よりも参照用:同じ要素名が他の場所で使用されている場合に、ブロックXPath
内の要素を参照できるようにする構文は何ですか?xsl:for-each
残念ながら、これは 1.0 のソリューションでなければなりません。
たとえば、次の単純な XML があり、同じid
値を持つ項目を一致させたい...
<data>
<block1>
<item><id>1</id><text>Hello</text></item>
<item><id>2</id><text>World</text></item>
</block1>
<block2>
<item><id>1</id><text>123</text></item>
<item><id>2</id><text>ABC</text></item>
</block2>
</data>
に がある場合、と の両方を参照するfor-each
にblock1
はどうすればよいですか?id
block1
id
block2
これは機能しますが、面倒だと思います...
<xsl:for-each select="//block1/item">
<xsl:variable name="id" select="id"/>
<xsl:value-of select="text"/> - <xsl:value-of select="//block2/item[id=$id]/text"/>
</xsl:for-each>
の結果で...
Hello - 123
World - ABC
の要素を参照するように$id
inを置き換える簡単な方法はありますか?select="//block2/item[id=$id]/text"
id
for-each