Python XPath:选择具有空值的标记
如何在XPath 1.0中找到所有带空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”有许多可能的定义,每一个定义都
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())]
]