Xpath 如何测试文本节点是否为空?
我有一个结构如下的XML文件:Xpath 如何测试文本节点是否为空?,xpath,Xpath,我有一个结构如下的XML文件: <entry id="1"> <para>first paragraph</para> <para>second paragraph</para> </entry> <entry id="2"> <para></para> </entry> 第一段 第二段 如果我的XSL发现一个条目的第一个元素的文本节点为空(示例中
<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())],但我不知道如何将其集成到我的代码中 text()=''
需要一个文本节点,但是在
的情况下,没有要匹配的文本节点
所以,我建议像
entry/para[1][.='']
或
是,除了测试必须为真之外,如果“它找到一个条目[该条目]具有第一个元素,其文本节点…”。顺便说一句,祝贺你有1000π代表。@LarsH没有注意到1000π!疯狂;-)。谢谢你的提示,我将编辑答案。快,有人否决了我的一些答案,我超过了1000π;)我不明白为什么,但我试着在这个页面上的文本后面找到图像:而且只有你的两个案例中的
[.='']
有效。为什么?@Gargo您的完整XPath是什么样子的?
entry/para[1][not(text())]