Я использую xsl:if
для выполнения небольшого условия в более крупном блоке xsl:template
, и я бы хотел проверить равенство атрибута текущего сопоставленного узла xsl:template
.XSLT if - attribute равно string
Следующая не работает:
<xsl:template match="sometag[@type='sometype']">
==Sometag==
<xsl:if test="@something!='hidden'">something</xsl:if>
<!--a lot of other stuff that I don't want to duplicate by multiplying the xsl:templates-->
<xsl:template>
Этот тест, кажется, всегда вычисляемая ложь, может быть, я не имею хороший синтаксис?
Этот XML:
<sometag type="sometype" something="visible"/>
<sometag type="sometype" something="hidden"/>
<sometag type="sometype"/>
должны дать
==Sometag==
something...
==Sometag==
==Sometag==
something...
Возможно, есть более эффективные способы организации вашей таблицы стилей. Пожалуйста, покажите свой XML-входной файл и больше контекста XSLT (если не всю таблицу стилей). –
@ MathiasMüller Я показал пример XML и то, что мне бы хотелось: 2-й тэг не должен печатать «что-то». И, пожалуйста, ответьте на вопрос 'xsl: if'. Мой XSLT намного больше, и я бы хотел использовать тег 'xsl: if', а не реорганизовывать все. – lajarre
Синтаксис выглядит хорошо. Угадайте, что этот шаблон не выполнен, или некоторые предыдущие вещи XSLT. Пожалуйста, укажите полный XSLT ... –