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()
我正在使用 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()