如何通过xpath解析lxml中的子元素

时间:2012-12-07 21:45:33

标签: python xpath lxml

page = urlopen(req)
doc = parse(page).getroot()
table = doc.xpath('/html/body/div/div/div/table')
table
<Element table ...>
doc.xpath('/html/body/div/div/div/table/tr')
<Element tr ...>...
table.xpath('/tr')
[]

为什么table.xpath('/tr')不生成相同的元素列表doc.xpath('/html/body/div/div/div/table/tr')呢?

1 个答案:

答案 0 :(得分:5)

这是因为以/开头的xpath始终在文档根目录开始匹配。

要避免这种情况,请保留斜线,或明确地使用.来匹配当前元素。
这些都应该有效:

table.xpath('tr')
# or
table.xpath('./tr')