XSL if: тест с несколькими условиями теста
[Решаемые]
Благодаря @IanRoberts мне пришлось использовать функцию нормализации пространства на моих узлах, чтобы проверить, были ли они пустыми.
<xsl:if test="((node/ABC!='') and (normalize-space(node/DEF)='') and (normalize-space(node/GHI)=''))">
This worked perfectly fine.
</xsl:if>
[Проблема]
Я пытаюсь создать условие xsl, чтобы проверить, являются ли комбинации узлов пустыми или нет. Я пробовал ниже условия, но они не работают, у кого-нибудь есть идея, как заставить его работать
<xsl:if test=" node/ABC!='' and node/DEF='' and node/GHI='' ">
This does not work
</xsl:if>
Я также пытался
<xsl:when test="((node/ABC!='') and (node/DEF='') and (node/GHI=''))">
This does not work either..
</xsl:when>
А также попробовал
<xsl:if test="(node/ABC!='')>
<xsl:if test="(node/DEF='')>
<xsl:if test="(node/GHI='')">
Nope not working..
</xsl:if>
</xsl:if>
</xsl:if>
Я тогда попробовал с одним xsl: если условия, а ниже это наблюдение
<xsl:if test="node/ABC!=''>
**This is working fine**
</xsl:if>
Однако, если я пытаюсь найти пустое условие, т.е.
<xsl:if test="node/ABC=''>
**This does not work**
</xsl:if>
Кроме того, если я пытаюсь с == (double равно), то это дает ошибку xslt. т.е.
<xsl:if test="node/ABC==''>
***This gives a compilation error***
</xsl:if>
Я хотел бы помочь выяснить, как получить мой xsl: если тест работает для проверки нескольких условий. Заранее спасибо.
[Редактировать]: Просто чтобы обновить здесь, что условие if, где все узлы не пустые, работает, оно не работает, когда я пытаюсь проверить любой другой узел из трех пустых узлов.
Например:
<xsl:if test=" node/ABC!='' and node/DEF!='' and node/GHI!='' ">
This condition works perfectly fine.
</xsl:if>