Python XPath 运算符介绍

2023-04-17 00:00:00 python 介绍 运算符

Python XPath 运算符是指可以用于 XPath 表达式中的符号或关键字,用于进行各种操作和比较。常用的 XPath 运算符包括:

  1. 逻辑运算符
  • and:逻辑与运算符,当两个表达式都为 True 时返回 True。
  • or:逻辑或运算符,当两个表达式至少有一个为 True 时返回 True。
  • not:逻辑非运算符,将表达式的结果取反。

示例代码:

# 导入 XPath 库
from lxml import etree

# 构造 XML 数据
xml = '''
<books>
    <book>
        <title>Python入门教程</title>
        <author>皮蛋编程</author>
        <price>59.9</price>
    </book>
    <book>
        <title>数据结构与算法</title>
        <author>pidancode.com</author>
        <price>49.9</price>
    </book>
    <book>
        <title>深度学习</title>
        <author>皮蛋编程</author>
        <price>79.9</price>
    </book>
</books>
'''

# 解析 XML 数据
root = etree.fromstring(xml)

# 使用逻辑运算符查询价格小于等于 59.9 且作者为“皮蛋编程”的书籍
books = root.xpath("//book[price<=59.9 and author='皮蛋编程']")

# 输出查询结果
for book in books:
    print("书名:", book.xpath("title/text()")[0])
    print("作者:", book.xpath("author/text()")[0])
    print("价格:", book.xpath("price/text()")[0])
    print()

输出结果:

书名: Python入门教程
作者: 皮蛋编程
价格: 59.9
  1. 关系运算符
  • =:等于运算符,当两个值相等时返回 True。
  • !=:不等于运算符,当两个值不相等时返回 True。
  • <:小于运算符,当左侧值小于右侧值时返回 True。
  • <=:小于等于运算符,当左侧值小于等于右侧值时返回 True。
  • >:大于运算符,当左侧值大于右侧值时返回 True。
  • >=:大于等于运算符,当左侧值大于等于右侧值时返回 True。

示例代码:

# 导入 XPath 库
from lxml import etree

# 构造 XML 数据
xml = '''
<books>
    <book>
        <title>Python入门教程</title>
        <author>皮蛋编程</author>
        <price>59.9</price>
    </book>
    <book>
        <title>数据结构与算法</title>
        <author>pidancode.com</author>
        <price>49.9</price>
    </book>
    <book>
        <title>深度学习</title>
        <author>皮蛋编程</author>
        <price>79.9</price>
    </book>
</books>
'''

# 解析 XML 数据
root = etree.fromstring(xml)

# 使用关系运算符查询价格大于 50 的书籍
books = root.xpath("//book[price>50]")

# 输出查询结果
for book in books:
    print("书名:", book.xpath("title/text()")[0])
    print("作者:", book.xpath("author/text()")[0])
    print("价格:", book.xpath("price/text()")[0])
    print()

输出结果:

书名: Python入门教程
作者: 皮蛋编程
价格: 59.9

书名: 深度学习
作者: 皮蛋编程
价格: 79.9
  1. 算术运算符
  • +:加法运算符,对两个值进行加法运算。
  • -:减法运算符,对两个值进行减法运算。
  • *:乘法运算符,对两个值进行乘法运算。
  • div:除法运算符,对两个值进行除法运算。如果两个值中有一个不是数值类型,将返回空列表。

示例代码:

# 导入 XPath 库
from lxml import etree

# 构造 XML 数据
xml = '''
<books>
    <book>
        <title>Python入门教程</title>
        <author>皮蛋编程</author>
        <price>59.9</price>
    </book>
    <book>
        <title>数据结构与算法</title>
        <author>pidancode.com</author>
        <price>49.9</price>
    </book>
    <book>
        <title>深度学习</title>
        <author>皮蛋编程</author>
        <price>79.9</price>
    </book>
</books>
'''

# 解析 XML 数据
root = etree.fromstring(xml)

# 使用算术运算符查询价格加上 10 后小于等于 69.9 的书籍
books = root.xpath("//book[price+10<=69.9]")

# 输出查询结果
for book in books:
    print("书名:", book.xpath("title/text()")[0])
    print("作者:", book.xpath("author/text()")[0])
    print("价格:", book.xpath("price/text()")[0])
    print()

输出结果:

书名: Python入门教程
作者: 皮蛋编程
价格: 59.9

书名: 数据结构与算法
作者: pidancode.com
价格: 49.9
  1. 字符串运算符
  • concat:连接运算符,将两个字符串连接成一个字符串。
  • contains:包含运算符,判断一个字符串是否包含另一个字符串。
  • starts-with:前缀运算符,判断一个字符串是否以另一个字符串为前缀。
  • ends-with:后缀运算符,判断一个字符串是否以另一个字符串为后缀。
  • string-length:字符串长度运算符,返回一个字符串的长度。

示例代码:

# 导入 XPath 库
from lxml import etree

# 构造 XML 数据
xml = '''
<books>
    <book>
        <title>Python入门教程</title>
        <author>皮蛋编程</author>
        <price>59.9</price>
    </book>
    <book>
        <title>数据结构与算法</title>
        <author>pidancode.com</author>
        <price>49.9</price>
    </book>
    <book>
        <title>深度学习</title>
        <author>皮蛋编程</author>
        <price>79.9</price>
    </book>
</books>
'''

# 解析 XML 数据
root = etree.fromstring(xml)

# 使用字符串运算符查询作者为“皮蛋编程”的书籍
books = root.xpath("//book[contains(author, '皮蛋编程')]")

# 输出查询结果
for book in books:
    print("书名:", book.xpath("title/text()")[0])
    print("作者:", book.xpath("author/text()")[0])
    print("价格:", book.xpath("price/text()")[0])
    print()

输出结果:

书名: Python入门教程
作者: 皮蛋编程
价格: 59.9

书名: 深度学习
作者: 皮蛋编程
价格: 79.9

相关文章