Python:通过 iter() 在 ElementTree 中使用命名空间

Python: Using namespaces in ElementTree with iter()

我正在使用 xml.etree.ElementTree 来解析一些复杂的 xml 文件。某些 xml 文件中嵌套了多个重复标签。

<product:object>
  <product:parent>
    <product:parent>
      <product:parent>
      </product:parent>
    </product:parent>
  </product:parent>
</product:object>

我正在使用 .iter() 来查找不同层中的重复标签。通常可以将第二个参数传递给 .find() 和 .findall()。但是,由于某些原因,.iter() 没有此选项。

我是不是遗漏了什么,或者有其他正确的方法吗?

我知道怎么做,并且有构建解决方法。 例如 - 重复并传递父元素的定义。 - 手动映射命名空间

我希望有更好的方法!?

我发现使用 XPath 语法 .findall(.//product:parent, ns) 可以替代 .iter()