2008-11-06 2 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 признается как строка, которая делает целое сравнение не представляется возможным. Я думал заменить. было бы решением, которое требует замены символа. Мой вопрос, как я могу это сделать или Было бы здорово, чтобы узнать больше о строковых операциях в XSLT ...

ответ

8

Существует translate() функции в XPath:

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

Кроме того, вы должны использовать функции чисел, который преобразует его аргумент числа (или NaN, если это не удается):

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

Смотрите documentation for translate() и documentation for number() на w3.org.

0

Thanx много.

он работает, но с одной простой модификации:

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

кстати речь идет не о XSLT речь идет о XPath :) хорошо учиться ...

0

В XSL 2 вы также можете использовать полнофункциональный replace(), который даже поддерживает шаблоны регулярных выражений.

+0

эта прохладный спасибо .. – erdogany 2009-01-13 15:44:38

Смежные вопросы