xpath

1. 使用 lxml

安装 lxml

首先,确保你已经安装了 lxml 库。可以使用以下命令进行安装:

pip install lxml

基本用法

lxml 提供了强大的 XML 解析和 XPath 查询功能。以下是一些常见的操作:

1.1 解析 XML 文档

你可以从字符串、文件或 URL 中解析 XML 文档。以下是从字符串解析的示例:

from lxml import etree

# 定义 XML 数据
xml_data = '''
<library>
    <book>
        <title>Python Programming</title>
        <author>John Doe</author>
        <price>29.99</price>
    </book>
    <book>
        <title>XML Basics</title>
        <author>Jane Smith</author>
        <price>39.99</price>
    </book>
</library>
'''

# 解析 XML 数据
tree = etree.fromstring(xml_data)

1.2 使用 XPath 查询

使用 xpath() 方法可以执行 XPath 查询。以下是一些常见的查询示例:

  • 选择所有书籍的标题
titles = tree.xpath('//book/title/text()')
print("书籍标题:", titles)  # 输出: 书籍标题: ['Python Programming', 'XML Basics']
  • 选择价格大于 30 的书籍
expensive_books = tree.xpath('//book[price > 30]/title/text()')
print("价格大于 30 的书籍:", expensive_books)  # 输出: 价格大于 30 的书籍: ['XML Basics']
  • 选择所有作者的名字
authors = tree.xpath('//book/author/text()')
print("作者:", authors)  # 输出: 作者: ['John Doe', 'Jane Smith']

1.3 复杂查询

  • 选择特定书籍的作者
author_of_python_book = tree.xpath('//book[title="Python Programming"]/author/text()')
print("Python Programming 的作者:", author_of_python_book)  # 输出: Python Programming 的作者: ['John Doe']
  • 选择所有书籍的价格,并且价格包含小数点
prices_with_decimal = tree.xpath('//book[price[contains(., ".")]]/price/text()')
print("价格包含小数点的书籍:", prices_with_decimal)  # 输出: 价格包含小数点的书籍: ['29.99', '39.99']

1.4 处理 XML 文件

如果你的 XML 数据存储在文件中,可以使用 etree.parse() 方法来解析文件:

tree = etree.parse('path/to/your/file.xml')

然后可以使用相同的 XPath 查询方法。

2. 使用 xml.etree.ElementTree

xml.etree.ElementTree 是 Python 标准库的一部分,适合处理简单的 XML 文档。虽然它不直接支持 XPath,但可以通过 find()findall() 方法进行类似的查询。

基本用法

2.1 解析 XML 文档

import xml.etree.ElementTree as ET

# 定义 XML 数据
xml_data = '''
<library>
    <book>
        <title>Python Programming</title>
        <author>John Doe</author>
        <price>29.99</price>
    </book>
    <book>
        <title>XML Basics</title>
        <author>Jane Smith</author>
        <price>39.99</price>
    </book>
</library>
'''

# 解析 XML 数据
root = ET.fromstring(xml_data)

2.2 使用 find()findall()

  • 查询所有书籍的标题
titles = [book.find('title').text for book in root.findall('book')]
print("书籍标题:", titles)  # 输出: 书籍标题: ['Python Programming', 'XML Basics']
  • 查询价格大于 30 的书籍
expensive_books = [book.find('title').text for book in root.findall('book') if float(book.find('price').text) > 30]
print("价格大于 30 的书籍:", expensive_books)  # 输出: 价格大于 30 的书籍: ['XML Basics']
  • 查询所有作者的名字
authors = [book.find('author').text for book in root.findall('book')]
print("作者:", authors)  # 输出: 作者: ['John Doe', 'Jane Smith']

2.3 处理 XML 文件

如果你的 XML 数据存储在文件中,可以使用 ET.parse() 方法来解析文件:

tree = ET.parse('path/to/your/file.xml')
root = tree.getroot()

然后可以使用 find()findall() 方法进行查询。

Read more

rust 模块

一、模块系统的基础 1. 模块的定义 模块是 Rust 中组织代码的基本单元。通过模块,你可以将代码划分为逻辑单元,控制可见性,避免命名冲突。 * 定义模块: mod my_module { // 模块内容 } * 模块的作用域: 模块内的项(函数、结构体、枚举等)默认是私有的,只能在模块内部访问。使用 pub 关键字可以公开这些项。 2. 模块的可见性 * 私有(默认):只能在模块内部访问。 * 公开(pub):可以在模块外部访问。 * 受限公开: * pub(crate):在整个 crate 内可见。 * pub(super):在父模块中可见。 * pub(in path):在指定路径下可见。 示例: mod outer

By amm

MongoDB

1. 安装 MongoDB 1.1 在 Windows 上安装 1. 下载 MongoDB: * 访问 MongoDB 官方网站 下载适合 Windows 的安装包。 2. 安装 MongoDB: * 运行下载的安装程序,按照提示完成安装。 3. 设置环境变量: * 将 MongoDB 的 bin 目录添加到系统的环境变量中,以便在命令行中使用 mongo 和 mongod 命令。 4. 创建数据目录: * 默认情况下,MongoDB 会在 C:\data\db 目录下存储数据。你可以手动创建这个目录,或者在启动 MongoDB 时指定其他目录。 1.2 在

By amm

© 2025 路不易All rights reserved.

备案号:黔ICP备2025043243号-1 | 公安备案图标 贵公网安备52052402000220号