如何比较XSLT中两个节点的值

如何比较XSLT中两个节点的值,xslt,Xslt,我知道这可能是重复的,但我还是要试试:) 我有一个XML文件,可以从中获取条件值。 XML文件如下所示: <root> <test> <criteria nom="DR"> <abbr>DR</abbr> <value>0.123456</value> </criteria> <criteria nom="MOTA">

我知道这可能是重复的,但我还是要试试:)

我有一个XML文件,可以从中获取条件值。 XML文件如下所示:

<root>
<test>
    <criteria nom="DR">
        <abbr>DR</abbr>
        <value>0.123456</value>
    </criteria>
    <criteria nom="MOTA">
        <abbr>MOTA</abbr>
        <value>0.132465</value>
    </criteria>
    </criteria>
</test>
<test>
    <criteria nom="DR">
        <abbr>DR</abbr>
        <value>0.655425</value>
    </criteria>
    <criteria nom="MOTA">
        <abbr>MOTA</abbr>
        <value>0.766545</value>
    </criteria>
</test>
</root>

博士
0.123456
莫塔
0.132465
博士
0.655425
莫塔
0.766545
我试图比较字段
。 目前,我正试图这样做:

<xsl:variable name="pos" select="position()" />
<xsl:for-each select="/root/test[$pos]/criteria/value">
    <xsl:if test="/root/test[$pos-1]/criteria/value/text() &lt; /root/test[$pos]/criteria/value/text()">
        <td class = "GOOD"><xsl:value-of select="text()"/></td>
    </xsl:if>
    <xsl:if test="/root/test[$pos-1]/criteria/value/text() &gt; /root/test[$pos]/criteria/value/text()">
        <td class = "BAD"><xsl:value-of select="text()"/></td>
    </xsl:if>
</xsl:for-each>

但这不是正确的方法。
我怎样才能达到这个结果

假设当前元素是
,这是一种非常优雅的引用方式 “上一个”值(在当前
测试
元素内)为:

有关工作示例,请参见

请注意,您的源XML在每个
测试
元素中只包含一个
标准
元素的前面有一个同级元素,因此为了降低集中度,我扩展了它 通过第一个
测试中的附加
标准
元素

访问上述页面,尝试更改
value
“源XML”窗格中的元素

select="../preceding-sibling::*[1]/value"