将变量赋给xslt循环中选择的值
我在这里做的是工作——我只是想知道是否有更好或更有效的方法来完成同样的事情 下面是XML结构将变量赋给xslt循环中选择的值,xslt,xslt-1.0,Xslt,Xslt 1.0,我在这里做的是工作——我只是想知道是否有更好或更有效的方法来完成同样的事情 下面是XML结构 <tags> <tag> <val1>abc</val1> <val2>123</val2> </tag> <tag> <val1>def</val1> <val2
<tags>
<tag>
<val1>abc</val1>
<val2>123</val2>
</tag>
<tag>
<val1>def</val1>
<val2>456</val2>
</tag>
<tag>
<val1>ghi</val1>
<val2>789</val2>
</tag>
</tags>
abc
123
def
456
ghi
789
我需要为val2的值分配一个变量,但前提是val1='def'
最后我想要一个等于456的变量
保证这些值是唯一的,因此“def”只存在一次
我解决这个问题的方法是在循环中为变量赋值,检查我要查找的值
<xsl:variable name="id">
<xsl:for-each select="tags/tag">
<xsl:variable name="role"><xsl:value-of select="val1"/ </xsl:variable>
<xsl:if test="$role = 'def'">
<xsl:value-of select="val2"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
您只需使用
选择元素,或者定义一个键
,然后选择
,我尝试了第一种方法,它缩短了几分钟的处理时间。谢谢你的帮助