2009-08-12 14 views
28

xsltの文字列値を整数値に変換したい。私はxslt 1.0を使用しているので、xslt 2.0でサポートされている関数を使用することはできません。 助けてください。XSLT 1.0で文字列を整数に変換する

+2

あなたはサンプル入力XMLドキュメント、サンプルXSLTを提供し、おそらく所望の出力を説明してもらえますか? –

+0

サンプルファイルをすべて取り出し、その文字列を整数に変換することができます。 サンプルは必要ありません。 – Kapil

+0

あなたの出力はどのように見えますか?そしてその番号で何をしたいですか?あなたが達成しようとしていることを知らずに助けが非常に難しいです。 –

答えて

52

jelovirtの答えに加えて、number()を使用して値を数値に変換し、round()、floor()、またはceiling()を使用して整数全体を取得できます。

<xsl:variable name="MyValAsText" select="'5.14'"/> 
<xsl:value-of select="number($MyValAsText) * 2"/> <!-- This outputs 10.28 --> 
<xsl:value-of select="floor($MyValAsText)"/> <!-- outputs 5 --> 
<xsl:value-of select="ceiling($MyValAsText)"/> <!-- outputs 6 --> 
<xsl:value-of select="round($MyValAsText)"/> <!-- outputs 5 --> 
+1

XPath 1.0では、(floor()、ceiling()やround()などの関数が数値データ型引数を必要とする場合、暗黙的にその引数を 'number()'関数でキャストしようとしています。 –

+0

私の "number($ MyValAsText)"は余分なものなのですか?さて、それらのビットを保存しましょう!先端のAlejandroをありがとう。私はXSLTで一般的にあまりにも頻繁にキャストする(ケースインポイント)十分な時間をかけないことでちょっとしたことを得ました。 – jeffreypriebe

31

XSLT 1.0には整数データ型がありません。倍精度データ型はありません。 number()を使用して、文字列を数値に変換することができます。