![](/img/trans.png)
[英]How to add a subchild on a xml file using xml.etree.ElementTree
[英]How to extract xml attribute using xml.etree.ElementTree
我正在尝试使用Python ElementTree如下提取xml属性,但是destinationmilestone.attrib['key']
没有给出值event3,event4
而是打印了milestone1,milestone2
键milestone1,milestone2
我在做什么错了?以下的输出和预期输出
import xml.etree.ElementTree as ET
tree = ET.parse('seed.xml')
root = tree.getroot()
destination_milestone_event_dict={}
events = []
radar_event = 'event1'
for milestone in root.findall('milestone'):
#print milestone
if milestone.get('name') == 'Internal Tools - milestone4':
seed_cloning = milestone.find('seed_cloning')
if seed_cloning != None:
#print "In seed cloning"
events = seed_cloning.find('events').text.split(',')
#print events
if radar_event in events:
#create destination_milestone_event_dict
destinationmilestones = seed_cloning.findall('destinationmilestone')
for destinationmilestone in destinationmilestones:
key = destinationmilestone.get('key')
print key
value = destinationmilestone.attrib['key']
print value
destination_milestone_event_dict[key] = value
print destination_milestone_event_dict
seed.xml
<?xml version="1.0"?>
<milestones>
<milestone name="milestone">
<destination_milestones>milestone3</destination_milestones>
<cross_os_cloning>
<destinationmilestones>milestone2 Candidate</destinationmilestones>
<shared_projects>tech-ci,Core</shared_projects>
</cross_os_cloning>
</milestone>
<milestone name="Internal Tools - milestone4">
<destination_milestones>milestone3</destination_milestones>
<seed_cloning>
<events>event1,event2</events>
<destinationmilestone key="milestone1">event3</destinationmilestone>
<destinationmilestone key="milestone2">event4</destinationmilestone>.
</seed_cloning>
</milestone>
</milestones>
当前输出:
milestone1
milestone1
milestone2
milestone2
{'milestone1': 'milestone1', 'milestone2': 'milestone2'}
预期的输出:
milestone1
event3
milestone2
event4
{'milestone1': 'event3', 'milestone2': 'event4'}
您应该使用.text
来获取值(标签的内容):
value = destinationmilestone.text
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.