Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用xml.etree.ElementTree提取xml属性_Python - Fatal编程技术网

Python 如何使用xml.etree.ElementTree提取xml属性

Python 如何使用xml.etree.ElementTree提取xml属性,python,Python,我尝试使用Python ElementTree提取xml属性,如下所示,但是destinationmilestone.attrib['key']没有给出值event3、event4,而是打印键milestone1、milestone2,我做错了什么?为了清楚起见,我在下面有当前输出和预期输出 import xml.etree.ElementTree as ET tree = ET.parse('seed.xml') root = tree.getroot() destination_mile

我尝试使用Python ElementTree提取xml属性,如下所示,但是
destinationmilestone.attrib['key']
没有给出值
event3、event4
,而是打印键
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
event3
milestone2
event4
{'milestone1': 'event3', 'milestone2': 'event4'}

您应该使用
.text
获取值(标记的内容):

milestone1
event3
milestone2
event4
{'milestone1': 'event3', 'milestone2': 'event4'}
value = destinationmilestone.text