XML解析python

XML解析python,python,xml,xml-parsing,Python,Xml,Xml Parsing,此代码似乎不起作用。基本上我想要的是检查dict的第二个子项的值,然后如果它是我想要的轨迹,就得到轨迹的位置 有没有办法获得满足我条件的dict节点?如何: self.dom = xml.dom.minidom.parse(self.file) self.name = self.dom.getElementsByTagName('dict') print self.name[10].firstChild.data 产生 import xml.dom.minidom as minidom dom

此代码似乎不起作用。基本上我想要的是检查dict的第二个子项的值,然后如果它是我想要的轨迹,就得到轨迹的位置

有没有办法获得满足我条件的dict节点?

如何:

self.dom = xml.dom.minidom.parse(self.file)
self.name = self.dom.getElementsByTagName('dict')
print self.name[10].firstChild.data
产生

import xml.dom.minidom as minidom
dom = minidom.parse('test.xml')
data={}
for dct in dom.getElementsByTagName('dict'):
    keys=dct.getElementsByTagName('key')
    # key.nextSibling can be an integer or string or date element, or Text node
    # key.nextSibling.firstChild is a Text node or None
    vals=[key.nextSibling.firstChild for key in keys]
    # drill down to the text inside the keys and vals
    keys=[key.firstChild.data for key in keys]
    vals=[val.data if val else None for val in vals]
    data=dict(zip(keys,vals))
    if data['Track ID']=='1208':
        print(data['Location'])
        break

在“dict”可以出现的地方有两个嵌套级别,对吗?那么“getElementsByTagName”就不起作用了。是的,dict有两个级别。但是在plist元素的顶部有一个plist元素。可以使用plist元素吗?如果您完全控制元素的命名,我强烈建议您使用比
dict
key
更通用的名称@jellybean:我怀疑他无法控制元素的命名。在我看来,这就像iTunes生成的iTunesMusicLibrary.xml文件的一个片段。
import xml.dom.minidom as minidom
dom = minidom.parse('test.xml')
data={}
for dct in dom.getElementsByTagName('dict'):
    keys=dct.getElementsByTagName('key')
    # key.nextSibling can be an integer or string or date element, or Text node
    # key.nextSibling.firstChild is a Text node or None
    vals=[key.nextSibling.firstChild for key in keys]
    # drill down to the text inside the keys and vals
    keys=[key.firstChild.data for key in keys]
    vals=[val.data if val else None for val in vals]
    data=dict(zip(keys,vals))
    if data['Track ID']=='1208':
        print(data['Location'])
        break
file://localhost/D:/My%20Music/English%20songs/01-30_seconds_to_mars-kings_and_queens.mp3