Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpath 如何测试文本节点是否为空?_Xpath - Fatal编程技术网

Xpath 如何测试文本节点是否为空?

Xpath 如何测试文本节点是否为空?,xpath,Xpath,我有一个结构如下的XML文件: <entry id="1"> <para>first paragraph</para> <para>second paragraph</para> </entry> <entry id="2"> <para></para> </entry> 第一段 第二段 如果我的XSL发现一个条目的第一个元素的文本节点为空(示例中

我有一个结构如下的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())],但我不知道如何将其集成到我的代码中

text()=''
需要一个文本节点,但是在
的情况下,没有要匹配的文本节点

所以,我建议像

entry/para[1][.='']


是,除了测试必须为真之外,如果“它找到一个条目[该条目]具有第一个元素,其文本节点…”。顺便说一句,祝贺你有1000π代表。@LarsH没有注意到1000π!疯狂;-)。谢谢你的提示,我将编辑答案。快,有人否决了我的一些答案,我超过了1000π;)我不明白为什么,但我试着在这个页面上的文本后面找到图像:而且只有你的两个案例中的
[.='']
有效。为什么?@Gargo您的完整XPath是什么样子的?
entry/para[1][not(text())]