English 中文(简体)
我该如何在XSLT中进行字符串操作?
原标题:
  • 时间:2008-11-06 09:50:49
  •  标签:

我在我的XSLT中有以下代码块;

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

But as you might guess when the value is 34,5 instead of 34.5 it is recognised as a string which makes integer comparison not possible. I thought replacing , with . would be solution that needs a char replace. My question is how I can do this or It would be great to know more about string operations in XSLT...

最佳回答

XPath 中有一个 translate() 函数:

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

另外,您应该利用数字函数,它将其参数转换为数字(如果失败,则为NaN):

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

请到w3.org上查看翻译()数字()的文档。 点此查看翻译文档点此查看数字文档

问题回答

非常感谢。

它可以使用,只需要进行一项简单的修改:

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

顺便说一句,这不是关于XSLT而是关于XPath :) 学起来不错...

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





相关问题
热门标签