xslでifを使って2つの値を比較したいのですが、文字列とxslタグでアクセスできる値を比較したいです。値(xslタグなし)と比較すると機能します。つまり:
<xsl:if test="$prev4 >0">
しかし、失敗にはエラーがあります:
<xsl:if test="$prev4 >0<xsl:value-of select="@wholeCount"/>">
この比較の仕方がわかりません。手伝ってくれませんか?ありがとうございました
実際には、2番目の引数を変数に入れる必要はまったくありません。そのため、現在受け入れられている答えは間違っていることを教えてくれます。
使用するだけです(XSLT1.0とXSLT2.0の両方で):
<xsl:if test="$prev4 > @wholecounter">
完全な例を次に示します。
この単純なXMLドキュメント:
<t wholecounter="1"/>
次の変換で処理された場合:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:variable name="prev4" select="3"/>
<xsl:template match="/*">
<xsl:if test="$prev4 > @wholecounter">
$prev4 is greater than @wholecounter
</xsl:if>
</xsl:template>
</xsl:stylesheet>
必要な正しい結果が生成されます:
$prev4 is greater than @wholecounter
Define an XSL variable as below:
<xsl:variable name="counter" select="@wholeCount"/>
Then use the variable in comparison:
<xsl:if test="$prev4 > $counter">