假设我有一个示例配置 XML 文件,如下所示:
<?xml version="1.0"?>
<note>
<to>Tove</to>
<infoaboutauthor>
<nestedprofile>
<aboutme>
<gco:CharacterString>I am a 10th grader who likes to play ball.</gco:CharacterString>
</aboutme>
</nestedprofile>
</infoaboutauthor>
<date>
<info_date>
<date>
<gco:Date>2003-06-13</gco:Date>
</date>
<datetype>
<datetype attribute="Value">
</datetype>
</datetype>
</info_date>
</date>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
在 python 中(尝试使用 ElementTree,不确定它是否是最好的)我想为某些标签获取某些值。我试过了:
with open('testfile.xml', 'rt') as f:
tree = ElementTree.parse(f)
print 'Parsing'
root = tree.getroot()
listofelements = root_elem.findall('gco:CharacterString')
for elementfound in listofelements:
print elementfound.text
在我上面使用的代码中,当我有冒号时它似乎不起作用,因为我收到以下错误:
SyntaxError: prefix 'gco' not found in prefix map
我的目标是
- 获取“2003-06-13”标签中的文本
- “aboutme”标签中的文字
实现这一目标的最佳方法是什么?有没有办法查找父级等于“aboutme”的“gco:CharacterString”?或者有什么方便的方法可以把它变成我可以去的字典mydict['note']['to']['nestedprofile']['aboutme']
吗?
注意:“gco:”前缀是我必须处理的,它是 xml 的一部分。如果 elementtree 不适合这个,那没关系。