如何在lxml中获取元素的路径? [英] How to get path of an element in lxml?

查看:94
本文介绍了如何在lxml中获取元素的路径?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用XPath从python中的lxml中搜索HTML文档.如何获得通往某个特定元素的路径?这是来自ruby nokogiri的示例:

I'm searching in a HTML document using XPath from lxml in python. How can I get the path to a certain element? Here's the example from ruby nokogiri:

page.xpath('//text()').each do |textnode|
    path = textnode.path
    puts path
end

打印例如'/html/body/div/div [1]/div [1]/p/text()[1] ",这是我要输入的字符串python.

print for example '/html/body/div/div[1]/div[1]/p/text()[1]' and this is the string I want to get in python.

推荐答案

使用

Use getpath from ElementTree objects.

from lxml import etree

root = etree.fromstring('<foo><bar>Data</bar><bar><baz>data</baz>'
                        '<baz>data</baz></bar></foo>')

tree = etree.ElementTree(root)
for e in root.iter():
    print tree.getpath(e)

打印

/foo
/foo/bar[1]
/foo/bar[2]
/foo/bar[2]/baz[1]
/foo/bar[2]/baz[2]

这篇关于如何在lxml中获取元素的路径?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆