Python XPath 函数介绍

2023-04-17 00:00:00 python 函数 介绍

XPath 函数是在 XPath 中用于执行操作和计算结果的内置函数。以下是一些常见的 XPath 函数:

  1. string() 函数:用于将节点的文本内容转换为字符串。例如,对于以下 XML 文档:
<pidancode>皮蛋编程</pidancode>

使用 string() 函数可以获取节点的文本内容:

string(/pidancode) 将返回“皮蛋编程”。
  1. substring() 函数:用于从字符串中提取子串。例如:
substring("pidancode.com", 1, 7) 将返回“pidanco”。
  1. contains() 函数:用于检查一个字符串是否包含另一个字符串。例如:
contains("pidancode.com", "code") 将返回 true。
  1. count() 函数:用于计算节点集合中节点的数量。例如:
count(//pidancode) 将返回文档中 pidancode 元素的数量。
  1. sum() 函数:用于计算节点集合中数值节点的总和。例如:
<product>
  <name>手机</name>
  <price>1000</price>
</product>
<product>
  <name>电视</name>
  <price>2000</price>
</product>

sum(//product/price) 将返回 3000。
  1. position() 函数:用于返回当前节点在其父节点中的位置。例如:
<list>
  <item>1</item>
  <item>2</item>
  <item>3</item>
</list>

//item[position()=2] 将返回第二个 item 节点(即包含“2”的节点)。
  1. last() 函数:用于返回节点集合中最后一个节点的位置。例如:
<list>
  <item>1</item>
  <item>2</item>
  <item>3</item>
</list>

//item[last()] 将返回最后一个 item 节点(即包含“3”的节点)。

示例代码:

import xml.etree.ElementTree as ET

# 创建 XML 文档
root = ET.fromstring('''
<products>
  <product>
    <name>手机</name>
    <price>1000</price>
  </product>
  <product>
    <name>电视</name>
    <price>2000</price>
  </product>
</products>
''')

# 计算产品价格总和
total = sum([float(price.text) for price in root.findall('.//price')])
print(total)  # 输出 3000.0

以上是 XPath 函数的一些常见用法和示例代码。在实际应用中,需要根据具体的情况选择合适的函数来实现相应的功能。

相关文章