Python XPath 语法介绍
XPath是一种用于在XML文档中定位节点的语言。Python中的XPath使用lxml库实现。下面介绍XPath的语法,以及Python中如何使用XPath提取XML文档中的信息。
XPath语法
XPath使用路径表达式(Path Expression)来定位节点,路径表达式由一系列的位置路径(Location Path)和选择器(Node Test)构成。下面是XPath的一些常用语法:
- /: 用于从根节点开始选择节点,例如:/bookstore/book
- //:用于选择文档中的任意位置的节点,例如://book
- .:当前节点,例如:./author
- ..:父节点,例如:../book
- @:选取属性,例如:/bookstore/book/@category
- []:用于筛选节点,例如:/bookstore/book[price>35.00],这个表示选择所有价格大于35.00的book节点。
Python中使用XPath提取信息
Python中可以使用lxml库的XPath方法实现XPath的定位和提取。首先需要将XML文档读入内存中,然后使用XPath方法选择节点,最后使用节点对象的方法获取节点信息。下面是一个例子:
# 导入lxml库 from lxml import etree # 定义XML文档 xml = ''' <bookstore> <book category="children"> <title lang="en">pidancode.com</title> <author>Tom</author> <year>2008</year> <price>29.99</price> </book> <book category="web"> <title>皮蛋编程</title> <author>Jane</author> <year>2009</year> <price>46.95</price> </book> <book category="web"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore> ''' # 把XML文档读入内存中 doc = etree.fromstring(xml) # 使用XPath选择节点 title = doc.xpath('/bookstore/book[1]/title') price = doc.xpath('/bookstore/book[2]/price') # 打印节点信息 print(title[0].text) print(price[0].text)
上述代码中,首先定义了一个XML文档,然后使用etree.fromstring方法将XML文档读入内存中。接着使用XPath选择了第一个book节点的title节点和第二个book节点的price节点,最后打印了这些节点的text值。
在实际应用中,XPath往往用来提取XML文档中的信息或者匹配特定的节点。XPath使用灵活,可以实现复杂的节点路径定位和信息提取。
相关文章