我需要在xml文件中找到一个元素 我的挑战是元素名称是动态的,我只知道父元素。
作为一个例子:
<?xml version="1.0"?>
<config version="1.0" timestamp="xxxxxxxxxx">
<a>
<aa>
..
</aa>
<b>
<bb>
...
</bb>
<c>
<cc>
<ccc>
<cccc>
<????>.......</????>
</cccc>
我需要找到元素????并阅读它的价值。
我已经尝试过了;
from xml.etree import ElementTree as ET
.....
for x in root.iter("cccc"):
for y in x.iter():
.....
但这似乎不是正确的解决方案。
感谢你的回答。
问候,
Robertico
答案 0 :(得分:2)
找到父元素并获取第一个孩子:
from xml.etree import ElementTree as ET
data = """<?xml version="1.0"?>
<config version="1.0" timestamp="xxxxxxxxxx">
<a>
<aa>
..
</aa>
</a>
<b>
<bb>
...
</bb>
</b>
<c>
<cc>
<ccc>
<cccc>
<test>value to find</test>
</cccc>
</ccc>
</cc>
</c>
</config>"""
tree = ET.fromstring(data)
parent = tree.find('.//cccc')
print next(iter(parent)).text
打印:
value to find
或者,感谢@falsetru,只需print tree.find('.//cccc/*').text
。
希望有所帮助。