python - lxml 中的通配符命名空间

标签 python xml xpath lxml

如何使用忽略 xml 命名空间的 xpath 进行查询?我正在使用 python lxml 库。我尝试了 this 中的解决方案问题,但似乎不起作用。

In [151]: e.find("./*[local-name()='Buckets']")
  File "<string>", line unknown
SyntaxError: invalid predicate

最佳答案

Use e.xpath, not e.find :


import lxml.etree as ET

content = '''\
<Envelope xmlns="http://www.example.com/zzz/yyy">
  <Header>
    <Version>1</Version>
  </Header>
  <Buckets>
    some stuff
  </Buckets>
</Envelope>
'''
root = ET.fromstring(content)
print(root.xpath("./*[local-name()='Buckets']"))
# [<Element {http://www.example.com/zzz/yyy}Buckets at 0xb73a62ac>]

关于python - lxml 中的通配符命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19302594/

相关文章:

xpath - 如果 XML 文件具有不同 namespace 中的元素,则使用 XMLTasks 的 ant 的 XMLPath 无法匹配

python - 将 pandas DataFrame 行复制到多个其他行

python - 是否有与 Linux/Unix "fold"命令等效的 Vim?

java - java.util.Map对应的XML格式是什么?

android - 对 android 可点击、可聚焦的 true-false 及其工作感到困惑

VB.Net XmlDocument.SelectNodes(xPath) : unable to query WSDL

c# - 在 XPath 表达式中声明命名空间

python - solr-thumbnail - 一些 jpeg 没有被处理

python - MinValueValidator 不适用于 Django 中的 DecimalField