Я пытаюсь обновить свои данные XML на основе некоторых логических переменных javascript в XSLT, я не уверен, что это лучший способ его использовать. Я пробовал код ниже, но кажется, что он не работает. Не могли бы вы помочь мне.Как проверить javascript boolean значение в XSLT
Javascript:
<msxsl:script language="JScript" implements-prefix="usr">
<![CDATA[
var FDAttempt = false;
function setFDAttemptTrue()
{
FDAttempt = true;
}
function getFDAttempt()
{
return FDAttempt;
}
]]>
</msxsl:script>
Установка переменной в одном из шаблонов
<xsl:template name="FDTemplate">
<xsl:if test ="usr:setFDAttemptTrue()" />
<Tran>
<TranName>FDAttempt</TranName>
<Result>Forced</Result>
</Tran>
</xsl:template>
Проверка булево значение: Является ли это правильный способ проверить
<xsl:when test ="Content/Journal">
<xsl:variable name="x" select ="Content/*[1]" />
<xsl:variable name="ForcedAttempt" select="usr:getFDAttempt()" />
<xsl:if test ="$x/Name='Complete' and $x/Details='Error' and $ForcedAttempt='false'">
<OutPut>
<Name>SDM</Name>
<Location>Transport</Result>
</OutPut>
</xsl:if>
</xsl:when>
Какой XSLT-процессор вы используете? Вместо 'и $ ForcedAttempt = 'false'' я бы использовал', а не ($ ForcedAttempt) '. Но будет ли какая-либо из этих попыток поддерживать состояние в переменной сценария расширения работать очень сильно зависит от реализации. –
@ Мартин Хоннен, Спасибо за ваш быстрый ответ. Я использую XSLT 1.0. Я попробую исправить. –
@Martin Honnen. Извините, что ответили в последнее время. Я попытался с $ ForcedAttempt, и он отлично работал, и это не вызывает проблемы с муравьями. Благодарю. –