2008-11-06 53 views
5

我在我的xslt中有以下代码块;如何在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的字符串操作...

回答

8

有在XPath中translate()功能:

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

另外,你应该使用数函数,它转换它的参数传递给一个数字(或NaN,如果失败)的:

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

documentation for translate()documentation for number()在w3.org。

0

非常感谢。

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

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

顺便说一下它是不是XSLT是有关XPath :)良好的学习...

0

在XSL 2,你也可以使用成熟的replace()甚至支持正则表达式模式。

+0

thats cool thanks .. – erdogany 2009-01-13 15:44:38