【发布时间】:2018-06-08 02:13:05
【问题描述】:
使用 Python,我正在尝试解析 XML 文件以检索基于“名称”属性值的元素值和基于“名称”属性值的子元素值好吧。
条件是:
如果'test'元素中的Category属性为3,则获取'name'属性的值
与
如果“name”属性的值为“enable”,则获取“color”元素的值
示例代码:
<test category="1">
<test category="2">
<test name="1" category="3">
<color name="disable">blue</color>
<color name="disable">yellow</color>
<color name="enable">red</color>
<color name="disable">orange</color>
</test>
<test name="2" category="3">
<color name="disable">green</color>
<color name="disable">purple</color>
<color name="enable">white</color>
<color name="disable">gray</color>
</test>
</test>
</test>
预期结果:
1 个红色
2 白色
我当前的代码:
import xml.etree.ElementTree as ET
tree = ET.parse('C:/colors.xml')
root = tree.getroot()
for test in root.getiterator('test'):
if test.attrib['category']=="3":
print test.attrib['name']
这给了我:
1
2
我尝试了一个嵌套的 FOR 来获取颜色元素的值,但我尝试的一切似乎都是从头开始的。
我们将不胜感激!
谢谢
【问题讨论】:
-
出了点问题。该 xml 不会使用 ElementTree 为我解析。
-
根据xmlvalidation.com也坏了。
-
是的对不起,我试图从记忆中做一个样本。我更新了它,它现在应该可以验证...谢谢让我知道!
标签: python xml scripting elementtree