lxml只支持xpath1.0,不支持xpath2.0,所以很多功能用不到,比如:
#xpath1.0
#连接所有YES。除了NO之外
sel = etree.HTML('<div>Yes1 <em>SonYes2 </em> Yes3<p>No</p></div>')
#xpath1.0无法直接在规则中连接字符串数组,需要在外面使用join
lst = sel.xpath('//div//text()[not(parent::p)]')
print "".join(lst)
#结果Yes1 SonYes2 Yes3
#xpath2.0
#连接所有YES。除了NO之外
sel = etree.HTML('<div>Yes1 <em>SonYes2 </em> Yes3<p>No</p></div>')
#如果是xpath2.0就很简单,直接使用内置函数string-join,就可以了
print sel.xpath('string-join(//div//text()[not(parent::p)], "")')
#结果Yes1 SonYes2 Yes3