Я пытаюсь реализовать оператор if -else в XSLT, но мой код просто не анализируется. У кого-нибудь есть идеи?
<xsl:variable name="CreatedDate" select="@createDate"/>
<xsl:variable name="IDAppendedDate" select="2012-01-01" />
<b>date: <xsl:value-of select="$CreatedDate"/></b>
<xsl:if test="$CreatedDate > $IDAppendedDate">
<h2> mooooooooooooo </h2>
</xsl:if>
<xsl:else>
<h2> dooooooooooooo </h2>
</xsl:else>
xml
xslt
if-statement
трусливый
источник
источник
Ответы:
Вы должны переопределить его, используя
<xsl:choose>
тег:источник
Если оператор используется для быстрой проверки только одного условия. Если у вас есть несколько вариантов, используйте,
<xsl:choose>
как показано ниже:Кроме того, вы можете использовать несколько
<xsl:when>
тегов для выраженияIf .. Else If
илиSwitch
шаблонов, как показано ниже:Предыдущий пример будет эквивалентен псевдокоду ниже:
источник
if else
условие было просто примером или скорее псевдокодом. Ну, я рассматриваю твою озабоченность, и я ее отредактировал ..Если я могу предложить некоторые предложения (два года спустя, но, надеюсь, полезно для будущих читателей) :
h2
элемента.ooooooooooooo
текст.if/then/else
конструкции XPath 2.0, если используете XSLT 2.0.Решение XSLT 1.0 (также работает с XSLT 2.0)
Решение XSLT 2.0
источник
Самый простой подход - сделать второй тест if, но с перевернутым условием. Этот метод короче, проще для глаз и легче понять, чем вложенный блок «выбирай, когда иначе»:
Вот реальный пример использования техники в таблице стилей для правительственного веб-сайта: http://w1.weather.gov/xml/current_obs/latest_ob.xsl
источник
if
тест соответствует дополнению первого, делает любую последующую модификацию более подверженной ошибкам.<xsl:choose>
будет гораздо более простым, его значение будет гораздо более понятным.Первоначально из этого блога . Мы можем достичь, если еще с помощью приведенного ниже кода
Итак, вот что я сделал
Мой вывод
источник