我有一个XML文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<session id="2934" name="Valves" docVersion="5.0.1">
<docInfo>
<field name="Employee" isMandotory="True">Jake Roberts</field>
<field name="Section" isOpen="True" isMandotory="False">5</field>
<field name="Location" isOpen="True" isMandotory="False">Munchen</field>
</docInfo>
</session>
使用xmltodict我希望以字符串形式获取Employee。这可能很简单,但我似乎无法弄明白。
这是我的代码:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import xmltodict
with open('valves.xml') as fd:
doc = xmltodict.parse(fd.read())
print "ID : %s" % doc['session']['@id']
print "Name : %s" % doc['session']['@name']
print "Doc Version : %s" % doc['session']['@docVersion']
print "Employee : %s" % doc['session']['docInfo']['field']
sys.exit(0)
有了这个,我确实得到了列表中的所有字段,但是可能使用xmltodict,每个单独的字段属性或元素都可以作为键值访问。 我如何访问值“Jake Roberts”,例如我访问docVersion的值?
答案 0 :(得分:0)
您获得的是一个字段列表,其中每个字段都由dict()
表示。探索这个词典(例如在Python交互式shell中),以缩小如何获得所需的值。
>>> doc["session"]["docInfo"]["field"][0]
OrderedDict([(u'@name', u'Employee'), (u'@isMandotory', u'True'), ('#text', u'Jake Roberts')])
为了获取元素值,请将["#text"]
添加到上面代码段中该行的末尾。