如何在 Python 中使用 XPath

2023-04-17 00:00:00 python xpath 如何在

XPath 是一种用于在 XML 和 HTML 文档中选取元素的语言,Python 中可以使用 lxml 库来实现 XPath 的解析和使用。

下面是使用 lxml 库解析 XML 文档,使用 XPath 选取元素的代码:

from lxml import etree

# XML 文档字符串
xml_str = '''<root>
                <person>
                    <name>pidancode.com</name>
                    <age>18</age>
                </person>
                <person>
                    <name>皮蛋编程</name>
                    <age>20</age>
                </person>
            </root>'''

# 将 XML 字符串转换为 Element 对象
root = etree.fromstring(xml_str)

# 使用 XPath 选取 name 元素的文本
names = root.xpath('//name/text()')

# 打印选取的元素文本
print(names)

输出结果为:

['pidancode.com', '皮蛋编程']

在此代码中,首先将 XML 字符串转换为 Element 对象,然后使用 XPath 选取元素的文本。XPath 中的 //name 表示选取所有名为 name 的元素,/text() 表示选取元素的文本。

除了选取元素的文本,还可以使用 XPath 选取元素的属性,如下所示:

from lxml import etree

# XML 文档字符串
xml_str = '''<root>
                <person id="1">
                    <name>pidancode.com</name>
                    <age>18</age>
                </person>
                <person id="2">
                    <name>皮蛋编程</name>
                    <age>20</age>
                </person>
            </root>'''

# 将 XML 字符串转换为 Element 对象
root = etree.fromstring(xml_str)

# 使用 XPath 选取 person 元素的 id 属性
ids = root.xpath('//person/@id')

# 打印选取的属性值
print(ids)

输出结果为:

['1', '2']

在此代码中,XPath 中的 //@id 表示选取所有具有 id 属性的元素的 id 属性值。

相关文章