我有一个具有这种结构的XML文件:
<entry id="1">
<para>first paragraph</para>
<para>second paragraph</para>
</entry>
<entry id="2">
<para></para>
</entry>
如果我的XSL发现某个条目的第一个元素的文本节点为空(示例中的条目id =“2”),则需要执行某些操作。我试过这个:
<xsl:when test="(entry/para[1]/text()='')">
但这似乎不起作用。
用于读取元素属性的类似代码片段可以正常工作:
<xsl:when test="entry[1]/para[@stylename = 'Table Heading']">
所以我对text()=''选择做错了。搜索建议我应该使用[not(text())]但我无法弄清楚如何在我的代码中集成它。
答案 0 :(得分:7)
text()=''
需要一个文本节点,但在<para></para>
的情况下,没有要匹配的文本节点。
所以,我建议像
这样的东西entry/para[1][.='']
或
entry/para[1][not(text())]