XML文件:
<XML>
<Item ID = "test1"></Item>
<Item ID = "test2"></Item>
</XML>
结果:
<XML>
<Item ID = "TEST01"></Item>
<Item ID = "TEST02"></Item>
</XML>
在我的XSLT 2.0文件中,如果currentID等于OldID,我希望获取变量的NewID,以便使用预定义的NewID更改属性值。
<xsl:variable name="Items">
<Item OldID="test1" NewID = "TEST01"></Item>
<Item OldID="test2" NewID = "TEST02"></Item>
</xsl:variable>
<xsl:template match="XML">
<xsl:copy>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:template match="Item">
<xsl:copy-of select="@*[name()!='ID']" />
<xsl:attribute name="ID">
<xsl:value-of select="$Items/Item[@OldID = @ID]/@NewID"/>
</xsl:attribute>
</xsl:copy>
</xsl:template>
答案 0 :(得分:1)
尝试:
<xsl:value-of select="$Items/Item[@OldID = current()/@ID]/@NewID"/>
-
附:建议阅读:http://www.w3.org/TR/xslt20/#key