【发布时间】:2023-03-20 14:05:01
【问题描述】:
我一直在尝试使用 xml.etree 解析以下 XML 文件:Bills.xml
这是简单的python源码:xml.py
我能够使用 for 循环成功打印 BILLFIXED 下的子项。结果如下:
- 1-Apr-2017 [注册债权人] 1
- 1-Apr-2017 [注册债权人] 58
但是,正如您在 XML 中看到的某些孤儿,BILLCL BILLOVERDUE BILLDUE 在输出 XML 时不会考虑在逻辑上必须在 BILLFIXED 下,因为我们使用以下代码查找 BILLFIXED 下的所有元素:
billfixed = dom.findall('BILLFIXED')
有没有办法将 BILLCL、BILLDUE 和 BILLOVERDUE 包含在各自的列表中?我想不出任何逻辑可以帮助我将那些孤儿视为 BILLFIXED 的子孩子。
谢谢!
【问题讨论】:
-
如果你可以控制 XML 的创建,你应该改变它。如果您必须处理它,您可以使用 XQuery 方法like these。但这取决于您使用的 XQuery 工具。如果您可以确定这些元素在任何情况下都存在,则可以将它们编号读出并与这些编号连接。
标签: python xml elementtree xml.etree