[Python] XPath:选择空值的标签



Answers

//row[col[@name='POW' and not(normalize-space())]]

为了确保POW列也没有任何子元素(即使它们不包含任何文本),然后添加一个额外的谓词过滤器:

//row[col[@name='POW' and not(normalize-space()) and not(*)]]
Question

如何在XPath 1.0中找到空col name="POW"所有行?

<row>
<col name="WOJ">02</col>
<col name="POW"/>
<col name="GMI"/>
<col name="RODZ"/>
<col name="NAZWA">DOLNOŚLĄSKIE</col>
<col name="NAZDOD">województwo</col>
<col name="STAN_NA">2011-01-01</col>
</row>

我尝试了很多解决方案 在Firefox扩展中很少有XPath Checker选择可以,但是lxml.xpath()表示表达式无效或者只是不返回任何行。

我的Python代码:

from lxml import html
f = open('TERC.xml', 'r')
page = html.fromstring(f.read())
for r in page.xpath("//row[col[@name = 'POW' and not(text())]]"):
    print r.text_content()
    print "-------------------------"



Links