Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.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
Python XPath:选择具有空值的标记_Python_Xml_Xpath_Lxml - Fatal编程技术网

Python XPath:选择具有空值的标记

Python XPath:选择具有空值的标记,python,xml,xpath,lxml,Python,Xml,Xpath,Lxml,如何在XPath 1.0中找到所有带空col name=“POW”的行 使用以下命令: //row[col[@name = 'POW' and not(text())]] 要确保POW列也没有任何子元素(即使它们不包含任何文本),请添加额外的谓词筛选器: //row[col[@name='POW' and not(normalize-space()) and not(*)]] 如何在XPath 1.0中找到所有带空col name=“POW”的行 “empty”有许多可能的定义,每一个定义都

如何在XPath 1.0中找到所有带空
col name=“POW”
的行

使用以下命令:

//row[col[@name = 'POW' and not(text())]]
要确保POW列也没有任何子元素(即使它们不包含任何文本),请添加额外的谓词筛选器:

//row[col[@name='POW' and not(normalize-space()) and not(*)]]
如何在XPath 1.0中找到所有带空
col name=“POW”
的行

“empty”有许多可能的定义,每一个定义都有一个选择“empty”元素的不同XPath表达式

空元素的合理定义是:没有子元素和文本节点子元素的元素,或者有单个文本节点子元素的元素,其字符串值仅包含空白字符

此XPath表达式

//row[col[@name = 'POW']
                    [not(*)]
                       [not(normalize-space())]
      ]
选择XML文档中的所有
元素,这些元素具有
子元素,具有属性
名称
,具有字符串值
“POW”
,并且没有子元素,其字符串值完全由空白字符组成,或者是空字符串

如果您理解为“空”即“根本没有子元素”,这意味着没有子元素、子PI节点和子注释节点,那么请使用:

//row[col[@name = 'POW']
                    [not(node())]
      ]
表达式末尾有不必要的
)]
。。。它选择代码中的所有行(在XPath检查器中,一切正常)。我更新了我的问题。。。
//row[col[@name='POW' and not(normalize-space()) and not(*)]]
//row[col[@name = 'POW']
                    [not(*)]
                       [not(normalize-space())]
      ]
//row[col[@name = 'POW']
                    [not(node())]
      ]