使用xpath()寻找祖父母节点与Python和lxml使用xpath()
问题描述:
有没有一种方法来获得一个类型为Element()的项目的.xpath父节点?使用xpath()寻找祖父母节点与Python和lxml使用xpath()
我有HTML这样的:
<table> ...
<tr><td>...</td></tr>
<tr><td><h3 class="product_name">Product</h3></td></tr>
</table>
我希望得到一个表元素,其中表是对表“表”的H3第一父元素。
从lxml.html进口fromstring
html = fromstring
for h3 in html.xpath('//h3[@class="product_name"]'):
parent_table = h3.xpath('???')
我应该使用什么的XPath?
答
./ancestor::table[1]
这将得到table
元件相对于上下文节点最接近的(大)的父/祖先即是。
你试过''../../''吗? – DainDwarf
@DainDwarf这是无效的xpath。另外,'../ ..'将得到包含_h3_的_tr_元素。此外,任何不使用祖先轴的xpath都将与文档的确切结构相关联。 – Matthew