xpath使用路径表达式在在 xml 文档中进行导航
/ 从根节点选取
// 从匹配选择的当前节点 选择文档中的节点,不考虑他们的位置
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性
有下例xml作为实验文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
导入库
from lxml import etree
获取标签、属性、 内容 :
from lxml import etree
text = '''
<?xml version="1.0" encoding="ISO-8859-1"?> # html文档
<bookstore>
<book>
<title lang="en">Harry Potter</title>
<title lang="en2">三国演义</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
''' # html文档
root = etree.HTML(text)
print(root.xpath('//book')) # 获取book标签
print(root.xpath('//book/year')) # 获取year标签
print(root.xpath('//book/title/@lang')) # 获取标签的属性
print(root.xpath('//title/@lang')) # 获取标签的属性 功能同上
print(root.xpath('//book/title/text()')) # 获取内容
print(root.xpath('//book/title[2]/text()')) # 获取第二个内容
print(root.xpath('//book/title[@lang="en2"]/text()')) # 利用属性名获取内容