python-3.x - lxml 不支持 xpath 上的多个属性过滤器

标签 python-3.x xpath lxml

我想使用xpath选择具有多个属性的节点

有什么办法可以解决我的问题吗?

node.xpath('.//td[@colspan=6 @class="mbw"]')

  File "lxml.etree.pyx", line 1507, in lxml.etree._Element.xpath (src/lxml/lxml.etree.c:52198)
  File "xpath.pxi", line 307, in lxml.etree.XPathElementEvaluator.__call__ (src/lxml/lxml.etree.c:152124)
  File "xpath.pxi", line 227, in lxml.etree._XPathEvaluatorBase._handle_result (src/lxml/lxml.etree.c:151097)
  File "xpath.pxi", line 212, in lxml.etree._XPathEvaluatorBase._raise_eval_error (src/lxml/lxml.etree.c:150896)
lxml.etree.XPathEvalError: Invalid predicate

最佳答案

您的 xpath 表达式缺少用于组合每个属性条件的逻辑运算符(andor),例如:

node.xpath('.//td[@colspan=6 and @class="mbw"]')

关于python-3.x - lxml 不支持 xpath 上的多个属性过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32883217/

相关文章:

python - Python 中的 XPATH 语法验证器

java - 在 XPath 表达式中使用整数变量 Java 从具有 namespace 的重复节点中提取信息

python - 使用 xml 在 Python 中解析 xml(一种正确的方法)

python - 从结果中删除数字; Python3

sql-server - 如何从 SQL Server 中的 XML 元素获取特定属性

python - 打印按键排序的字典项目

python - 使用 lxml.iterparse 解析相同内容两次

python - 如何将 < 转换为 < in lxml,Python?

python - 大多数 pythonic 可能会将嵌套列表传递给格式化

python - 如何在 Pandas 中用数字对字符串进行排序?