使用 Python XPath 运算符解析 XML 数据
在 Python 中使用 XPath 导航和获取 XML 数据的步骤如下:
-
安装 lxml 库:
pip install lxml
-
导入 lxml.etree 模块:
import lxml.etree as ET
-
创建 XML 树:
root = ET.fromstring(xml_string)
(其中 xml_string 是 XML 字符串) -
使用 XPath 导航:
-
按节点名称获取:
root.xpath('node_name')
-
按路径获取:
root.xpath('path/to/node')
-
按属性获取:
root.xpath('node[@attribute="value"]')
-
获取文本:
root.xpath('node/text()')
-
获取多个匹配节点:
root.xpath('nodes')
-
获取节点属性:
root.xpath('node/@attribute')
-
获取节点位置:
root.xpath('count(node/preceding-sibling::*) + 1')
-
获取节点数量:
len(root.xpath('nodes'))
- 示例代码如下:
import lxml.etree as ET xml_string = ''' <pidancode> <author>皮蛋编程</author> <website>www.pidancode.com</website> <articles> <article> <title>Python XPath 运算符</title> <url>https://www.pidancode.com/python-xpath</url> </article> <article> <title>10 行 Python 代码实现微信机器人</title> <url>https://www.pidancode.com/wechat-bot-python</url> </article> </articles> </pidancode> ''' root = ET.fromstring(xml_string) # 获取作者 author = root.xpath('author')[0].text print(author) # 获取第一篇文章标题 title = root.xpath('articles/article[1]/title')[0].text print(title) # 获取所有文章 URL urls = [a.text for a in root.xpath('articles/article/url')] print(urls)
输出结果如下:
皮蛋编程 Python XPath 运算符 ['https://www.pidancode.com/python-xpath', 'https://www.pidancode.com/wechat-bot-python']
相关文章