使用 Python XPath 运算符解析 XML 数据

2023-04-17 00:00:00 数据 解析 运算符

在 Python 中使用 XPath 导航和获取 XML 数据的步骤如下:

  1. 安装 lxml 库:pip install lxml

  2. 导入 lxml.etree 模块:import lxml.etree as ET

  3. 创建 XML 树:root = ET.fromstring(xml_string)(其中 xml_string 是 XML 字符串)

  4. 使用 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'))

  1. 示例代码如下:
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']

相关文章