如何在XSLT中执行字符串操作?

时间:2008-11-06 09:50:49

标签: xslt string xpath

我的xslt中有以下代码块;

      <xsl:when test="StatusData/Status/Temperature > 27">
        <td bgcolor="#ffaaaa">              
          <xsl:value-of select="StatusData/Status/Temperature" />              
        </td>
      </xsl:when>

但正如你可能猜到的那样,当值为34,5而不是34.5时,它被识别为一个字符串,它不能进行整数比较。我想要替换。将是需要char替换的解决方案。我的问题是如何做到这一点 要么 能够更好地了解XSLT中的字符串操作......

3 个答案:

答案 0 :(得分:8)

XPath中有translate()函数:

test="translate(StatusData/Status/Temperature, ",", ".") > 27"

此外,你应该使用数字函数,它将它的参数转换为数字(或NaN,如果失败):

test="number(translate(StatusData/Status/Temperature, ",", ".")) > 27.0"

请参阅w3.org上的documentation for translate()documentation for number()

答案 1 :(得分:0)

Thanx很多。

它的工作原理只有一个简单的修改:

test="number(translate(StatusData/Status/Temperature, ',', '.')) > 27.0"

顺便说一下,它不是关于XSLT,而是关于XPath :)很好学习......

答案 2 :(得分:0)

在XSL 2中,您还可以使用甚至支持正则表达式模式的完整replace()