python - 使用 lxml 和路径解析 xml,但如果它有 xmlns 声明,则得到空列表

标签 python xml xpath lxml

我有一个需要解析标签值的 xml 文件。元素的 XPATH"//provider"。我将如何使用 lxml 来解析这个标签?这是 xml 的开头:

<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://...">
    <provider>testmovieprovider</provider>
    <language>ja-JP</language>
    <!-- more stuff -->
</package>

以下是我尝试过的:

>>> f = open(file)
>>> xml = f.read()
>>> node = etree.fromstring(xml)
>>> provider=node.xpath('//provider')
>>> provider
[] # (This returns an empty set, instead of the provider name, 'testmovieprovider'.)

最佳答案

尝试这样的 XPath:

/*/*[local-name()='provider']

关于python - 使用 lxml 和路径解析 xml,但如果它有 xmlns 声明,则得到空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9233092/

相关文章:

python - 属性错误: 'str' object has no attribute 'name' PySpark

java - 如何在java中创建xml文件并将用户输入的数据 append 到其中

java - 使用 XPath 获取父元素的同级和后续文本

XML::Twig 使用正则表达式匹配处理程序标记 (perl v5.30.3 XML Twig v3.52)

javascript - 如何根据 xml 节点的值分配一个类?

c# - 使用 XPath 和 WebBrowser Control 选择多个节点

html - 在 XPath 中获取(文本)

python - Tensorflow InvalidArgumentError(回溯见上文): Incompatible shapes: [10000, 10] 与 [10000]

python - 如何在对象上进行 str.replace?

python - 将重复参数传递给 Numpy 向量化函数的最佳方法