0

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

 <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...

似乎这里从来没有正确接收到值并且测试总是失败

有任何想法吗?

4

3 回答 3

3

isEnabled 是否包含空格?

<isEnabled>true</isEnabled>

对比

<isEnabled>true </isEnabled>

或者

<isEnabled>
true
</isEnabled>

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

于 2009-12-15T17:07:33.120 回答
1

怎么样?

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

<xsl:when test="normalize-space($isEnabled)='true'">
于 2009-12-15T16:52:32.510 回答
0

好的,原来这不是 xsl 问题,但问题要早得多.. 在为转换生成 xml 的速度模板上。我怎样才能结束这个问题?

于 2009-12-22T08:43:02.733 回答