Я не могу выяснить способ проверить, является ли значение элемента "верным" или "ложным".
Это - булевская переменная, преобразованная из набора данных. Когда я выбираю значение, я вижу, что это или "верно" или "ложно", но мой тест не получает ожидаемое поведение. (это всегда - ложь.) Я попробовал почти все, это - мое первое xslt приложение, таким образом, справка ценится.
<xsl:if test="ispassive">
<tr>
<td>
<em>pasif değil</em>
<hr></hr>
</td>
</tr>
</xsl:if>
В зависимости от того, как вы представляете ваш булеан, это может быть много вещей, как выглядят ваши данные?
Скорее всего, сценарий, ложь представляется как 0 и истина может быть любым значением без 0.
<xsl:if test="$myvalue = 0">
-- output if false --
</xsl:if>
но, скорее всего, лучше использовать xsl:choose
<xsl:choose>
<xsl:when test="$myvalue = 0">
-- output if false --
</xsl:when>
<xsl:otherwise>
-- output if true --
</xsl:otherwise>
</xsl:choose>
Вы можете оставить без внимания обратное, если оно вам не нужно.
После публикации здесь я понял, что
Мой
тест был за пределами моего
.
После изменения положения
Условия, я узнал, что это работает для меня.
<xsl:if test="ispassive='true'">
<tr>
<td>
<em>pasif</em>
<hr></hr>
</td>
</tr>
</xsl:if>
Сравнивая оцененную строковое значение , исходящих
элемента для «true» работает нормально, (которые я пробовал раньше, но потому что я неуместел его в XSLT, он всегда не провалил, потому что он не смогл выбрать Элемент
элемент
для оценки его значения.
Этот XSLT ищет узел в текущем контексте, называемом извещательным.
Итак, если ваш XML
<Root>
<ispassive />
</Root>
, вы получите правду. Как правило, вы должны указать XPath к значению, которое вы хотите проверить. Поэтому, если ваш XML
<Root>
<Node ispassive="true"/>
</Root>
, и вы заменяете
<xsl:if test="ispassive">
с помощью
<xsl:if test="//@ispassive = 'true'">
, ваша стилей будет работать, как ожидалось.