【发布时间】:2010-07-29 16:07:45
【问题描述】:
我有这样的 XSLT 1.0 代码:
<xsl:key name="enemyItems"
match="metadata[attributes/metadata_key/@value = 'enemylist']"
use="attributes/metadata_refkey/@value"/>
<xsl:template match="item">
<xsl:variable name="enemyList"
select="key('enemyItems', @key)/attributes/@value"/>
<xsl:if test="string-length($enemyList) > 0">
<xsl:value-of select="@name"/>
</xsl:if>
</xsl:template>
据我了解,一个键可以为特定元素存储多个值。我相信上面的代码只是在引用key('enemyItems', @key)时才获得第一个值。
所以,我想将该代码包装在 xsl:for-each 中,就像这样
<xsl:template match="item">
<xsl:for-each select="key('enemyItems', @key)">
<xsl:variable name="enemyList"
select="???/attributes/@value"/>
<xsl:if test="string-length($enemyList) > 0">
<xsl:value-of select="@name"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
我的问题是: ???部分? (即迭代变量或事物的名称是什么?)
【问题讨论】: