识别XSLT中的null元素,即使在子元素中也没有值

Pat*_*tan 3 xslt xpath xslt-1.0

检查Null元素

<image><a><img src="abcd"/></a></image>
Run Code Online (Sandbox Code Playgroud)

XSLT模板:

<xsl:if test="image!=''">
IMAGE HAS TEXT OR INNER ELEMENT
</xsl:if>
Run Code Online (Sandbox Code Playgroud)

虽然"image"元素有子元素,但我得到空白输出.理想情况下它不是空的.

我必须检查它应该有值或子元素的条件.子元素可以为空.

如何纠正这一点.

谢谢

Dim*_*hev 5

用途:

image[string() or node()]
Run Code Online (Sandbox Code Playgroud)

true()仅当image当前节点至少有一个子节点,使其字符串值为非空,或者它具有子节点(或两者)时,才进行求值.

这可以简化为:

 image[node()]
Run Code Online (Sandbox Code Playgroud)

考虑到为了具有字符串值,元素必须在其子树中具有文本节点后代.

如果您希望字符串值image(如果有)不是全空格,请将上述第一个XPath表达式修改为:

image[normalize-space() or node()]
Run Code Online (Sandbox Code Playgroud)