5

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 での文字列操作について詳しく知ることができれば幸いです...

4

3 に答える 3

8

translate()XPathには関数があります:

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

さらに、引数を数値 (または失敗した場合は NaN) に変換する number 関数を使用する必要があります。

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

のドキュメントtranslate()とw3.orgのドキュメントnumber()を参照してください。

于 2008-11-06T09:58:31.933 に答える
0

どうもありがとう。

動作しますが、簡単な変更が 1 つあります。

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

ちなみに、XSLTについてではなく、XPathについてです:)学ぶのは良いことです...

于 2008-11-06T10:07:35.177 に答える