将字符串与xsl中xsl标记中的值进行比较:

时间:2012-11-04 07:28:04

标签: xslt xslt-1.0 xslt-2.0

我想在xsl中使用if来比较两个值,但我想将一个字符串与我可以通过xsl标记访问它的值进行比较。如果我与一个值(没有xsl标签)比较,它的工作原理。我的意思是:

<xsl:if test="$prev4 &gt;0">

但是休息时间有误:

<xsl:if test="$prev4 &gt;0<xsl:value-of select="@wholeCount"/>">

我不知道怎么做比较。你能帮我么?谢谢

2 个答案:

答案 0 :(得分:2)

定义一个XSL变量,如下所示:

 <xsl:variable name="counter" select="@wholeCount"/>

然后使用变量进行比较:

  <xsl:if test="$prev4 &gt; $counter">

答案 1 :(得分:2)

实际上,根本没有必要将第二个参数放在变量中 - 所以当前接受的答案会教你错误

只需使用(在XSLT 1.0和XSLT 2.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