xsl检查变量似乎不起作用

时间:2009-12-15 16:41:26

标签: xpath xslt pdf-generation apache-fop

当我直接输出节点的值时,例如:

 <fo:inline><xsl:value-of select="isEnabled" /></fo:inline>

我得到正确的字符串输出pdf“true”..

但是如果我将isEnabled的值直接设置为变量然后尝试对其进行比较..它似乎不起作用,就好像节点不存在一样。

<xsl:variable name="isEnabled" select="isEnabled" />

<xsl:choose>
<xsl:when test="$isEnabled = 'true'">
   dostuff...

似乎这里的值从未正确接收过,测试总是失败

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

isEnabled是否包含空格?

<isEnabled>true</isEnabled>

VS

<isEnabled>true </isEnabled>

<isEnabled>
true
</isEnabled>

会为您的测试提供不同的结果。第一个应该通过,接下来的两个可能不会通过。然而,当使用value-of时,它们似乎都可以呈现为文本“真实”。

答案 1 :(得分:1)

怎么样?

<xsl:variable name="isEnabled">
    <xsl:value-of select="isEnabled" />
</xsl:variable>

<xsl:when test="normalize-space($isEnabled)='true'">

答案 2 :(得分:0)

好吧原来这不是一个xsl问题,但问题是早得多..在生成转换的xml的速度模板上。我怎么能关闭这个问题?