[решаемые]
Благодаря @IanRoberts мне пришлось использовать функцию normalize-space на моих узлах, чтобы проверить, были ли они пустыми.
<xsl:if test="((node/ABC!='') and (normalize-space(node/DEF)='') and (normalize-space(node/GHI)=''))">
This worked perfectly fine.
</xsl:if>
[Проблема]
Я пытаюсь создать условие xsl, чтобы проверить, являются ли комбинации node пустыми или нет. Я пробовал ниже условий, но они не работают, кто-нибудь имеет представление о том, как заставить его работать.
<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>
I, затем попытался с одним условием xsl: if, а ниже - наблюдение
<xsl:if test="node/ABC!=''>
**This is working fine**
</xsl:if>
Однако, если я попытаюсь выполнить поиск пустого условия, i.e
<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, проверяющий несколько условий. Спасибо заранее.
[Изменить]: просто обновить здесь, что условие if, где все узлы не являются пустыми, работает, но не работает, когда я пытаюсь проверить какой-либо другой node из трех пустых узлов.
Например,
<xsl:if test=" node/ABC!='' and node/DEF!='' and node/GHI!='' ">
This condition works perfectly fine.
</xsl:if>