0

我有一个简单的 XML 结构,例如

<main>
<node1><!-- comments --><!-- comments --></node1>
</main>

这可以有任意数量的子节点或值,例如:

    <main>
    <node1><!-- comments --><!-- comments --><p>texttext text</p> 
more text <br/></node1>
    </main>

我想检查节点<node1>是否为空:
条件:节点中仍然可以有注释,它应该仍然被标记为空我正在做类似的事情:

<xsl:if test="string-length(main/node1//text())&gt;0">

但是如果有多个标签它不起作用<p>,那么 string-length 函数会因为多个参数而中断。

非常感谢解决此问题的任何帮助。

4

1 回答 1

1

<xsl:template match="main/node1[* | text()[normalize-space()]">匹配那些node1至少有一个元素子节点或一个文本子节点且内容不是空白的元素。因此,条件node1[* | text()[normalize-space()]可能是您正在寻找的,因为它忽略了注释节点(和处理指令节点)。

于 2012-12-06T17:16:59.747 回答