python-3.x - Lxml 树在给出时将 xpath 表达式作为字符串返回,如下例所示
问题描述
import lxml.etree as LX
url= "https://www.w3.org/2003/05/soap-envelope/"
response = requests.get(url)
xml_string = LX.fromstring(response.content)
path='"//*[1.1.1]"'
result = xml_string.xpath(path)
print(result)
上述代码的结果将 xpath 作为字符串本身返回,并且不会通过无效 xpath 的错误
解决方案
'"//*[1.1.1]"'
不是 XPath (*)。这是一个字符串。注意报价位置。
只包含一个字符串的 XPath 表达式将返回该字符串,这并不奇怪。
import lxml.etree as LX
import requests
url = "https://www.w3.org/2003/05/soap-envelope/"
response = requests.get(url)
tree = LX.fromstring(response.content)
path = '"Look at me I\'m a string!"'
result = tree.xpath(path)
print(result)
印刷
看我,我是一根绳子!
(*)吹毛求疵的技术点。当然,它是一个 XPath 表达式。如果不是,您将收到来自 lxml 的错误。它只是不选择任何元素。
推荐阅读
- scrapy - 运行具有多个 start_urls 的scrapy spider时缺少导出结果
- jenkins - 如何从 jenkins 轮询最新的产品版本
- mysql - 是否可以在 Lumen/Laravel 中批量插入后将数据添加到相关表中?
- java - 如何在Android Studio中解析没有数组名的Json
- openshift - opm 从图像中修剪目录的所有版本
- java - 如何使用 Java 中的嵌套 for 循环将 2D 数组元素存储在空的 3D 数组中?
- c++ - 如何将基类成员引入派生类定义,但只有一个重载?
- json - 大 JSON 文件的 Angular 材料表中的分页、排序、过滤器失败
- swift - 我正在学习 swift UI 如何制作像图像一样的自定义按钮和自定义文本字段,如图所示
- go - Go 运行时在哪里寻找插件?