xpath
xpath
:查找XML(用来存储和传输数据的)文档的语言
lxml
:专门用来处理XML和HTML数据的三方库
etree.XML()
:将XML格式的字符串转换成Element对象,可以方便地使用xpath方法。
etree.HTML()
:将HTML格式的字符串转换成Element对象,可以方便地使用xpath方法。
xpath基本用法
from lxml import etree
xml_str = """
<supermarket>
<name>永辉超市</name>
<address>中国</address>
<address name="one">四川成都</address>
<address name="two">肖家河大厦</address>
<goodsList>
<goods name="泡面" price="3.5" count="20"></goods>
<goods name="矿泉水" price="2" count="50"></goods>
<goods name="面包" price="5" count="15"></goods>
</goodsList>
<worker_list>
<cashier name="张三" pay="4000"></cashier>
<shoppingGuide name="李四" pay="3500"></shoppingGuide>
</worker_list>
<goods price="50" count="15">
<name>烟</name>
</goods>
</supermarket>
"""
root = etree.XML(xml_str)
print(type(root))
print(root)
- xpath语法
*/
:表示根节点
//
:表示文档的任意节点
.
:表示当前节点
..
:当前节点的父节点
@
:表示节点的属性
- 实例
/supermarket
:表示提取根节点的所有子节点
/supermarket/text()
:表示提取根节点的所有子节点的内容
supermarket
:提取supermarket子节点
//name
:表示提取文档中的所有name节点
/supermarket/goodsList/goods/@name
:提取supermarket根节点下的goodsList子节点的goods子节点的name属性
print(root.xpath('/supermarket/