在XML中创建大于但小于的函数

时间:2016-02-07 02:24:19

标签: xml xslt

我正在尝试编写一个代码,该代码从SharePoint中的列表中提取信息,其范围与一个术语相关联。例如:

1-3 = Low
4-6 = Moderate
7-9 = High
10 = Critical

我有以下代码,但我似乎无法正常工作。我想要做的是只从上面的这些范围拉出来:

<xsl:variable name="RM1A" select="count($Rows[@Impact $gt;='01' -and- $lt;='03][@Likelihood $gt;='01' -and- $lt;='02'])"/>

问题在于它可以工作但是拉出所有大于01的数字并且不会在03处停止。我是XML编码的新手,所以要温和。

我正在寻找一种更简单的方法或者正确的语法来实现这一目标。

谢谢!

1 个答案:

答案 0 :(得分:2)

首先,转发<>依次为&lt;&gt;。然后,像and &lt;='03'这样的表达式无效。它被认为缺少<=的左操作数。最后一点只是一个建议;您可能希望将属性转换为数字,以安全地将其值作为数字进行比较。因此,以下是一个可能的有效表达式(为了可读性而包装):

count(
    $Rows[number(@Impact) &gt;=1 and number(@Impact) &lt;=3]
         [number(@Likelihood) &gt;=1 and number(@Likelihood) &lt;=2]
)