переменная проверки xsl не работает - PullRequest
0 голосов
/ 15 декабря 2009

когда я вывести значение узла напрямую, например:

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

3 голосов
/ 15 декабря 2009

Содержит ли isEnabled пробел?

<isEnabled>true</isEnabled>

против

<isEnabled>true </isEnabled>

или

<isEnabled>
true
</isEnabled>

даст другие результаты для вашего теста. Первый должен пройти, следующие два скорее всего не пройдут. Тем не менее, все они могут отображаться как текст "true" при использовании value-of.

1 голос
/ 15 декабря 2009

Как насчет?

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

<xsl:when test="normalize-space($isEnabled)='true'">
0 голосов
/ 22 декабря 2009

хорошо, оказалось, что это не проблема xsl, но проблема намного раньше .. в шаблоне скорости, который генерирует xml для преобразования. Как мне закрыть этот вопрос?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...