我的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中的字符串操作......
答案 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()
。