2010-03-04 145 views
0

在下面的下面的代碼,如何檢索id的值,ID在it.How多個值訪問ID的價值觀和更新,以RESULT1訪問蟒蛇變量列表

def parse_results(): 

    try: 
     xml = minidom.parseString(new_results) 
     for xmlchild in xmldoc.childNodes[0].childNodes : 
      result1 = {} 
      result1.update ({'firstname': xmlchild.getElementsByTagName("firstname")[0].childNodes[0].nodeValue}) 
      result1.update ({'lastname': xmlchild.getElementsByTagName("lastname")[0].childNodes[0].nodeValue}) 
      result1.update ({'address': address}) 
      if xmlchild.getElementsByTagName("id")[0].childNodes[0].nodeValue:  
       logging.debug(xmlchild.getElementsByTagName("id")[0].childNodes[0].nodeValue.lower())   

      result1.update ({'id': id}) 

編輯:

xmlchild.getElementsByTagName("id")[0].childNodes[0].nodeValue - 此聲明給出了一個例外

添加XML:

<info><firstname>firstname</firstname><lastname>lastname</lastname><id>2</id></info> 
<info><firstname>firstname</firstname><lastname>lastname</lastname><id>3</id></info> 
<info><firstname>firstname</firstname><lastname>lastname</lastname><id>4</id></info> 
+0

你能不能將XML的一部分嗎? – YOU 2010-03-04 10:24:56

+0

我已經添加了個XML – Hulk 2010-03-04 10:46:34

+0

當我剛剛檢查了XML的3行,有你得到異常的行沒有問題,奇怪 – YOU 2010-03-04 11:47:54

回答

0

你爲什麼使用小型號?使用真的很無聊。

我建議你移動到element tree

import xml.etree.ElementTree as et 
d = et.fromstring(''' 
<doc> 
<info><firstname>firstname</firstname><lastname>lastname</lastname><id>2</id></info> 
<info><firstname>firstname</firstname><lastname>lastname</lastname><id>3</id></info> 
<info><firstname>firstname</firstname><lastname>lastname</lastname><id>4</id></info> 
</doc> 
''') 

result = [dict((el.tag, el.text) for el in info) for info in d.findall('info')] 
print result 

,打印:

[{'firstname': 'firstname', 'id': '2', 'lastname': 'lastname'}, 
{'firstname': 'firstname', 'id': '3', 'lastname': 'lastname'}, 
{'firstname': 'firstname', 'id': '4', 'lastname': 'lastname'}] 
+0

元素樹是不是默認安裝的一部分,是嗎?這可能是爲什麼。 OP將需要安裝lxml(http://codespeak.net/lxml/)。除此之外,我完全同意。方式更易於使用。 – Tom 2010-03-04 12:50:36

+0

@湯姆:Luckly,它是默認安裝的一部分,因爲Python 2.5:http://docs.python.org/library/xml.etree.elementtree.html - 我已經添加了鏈接到我的答案。 – nosklo 2010-03-04 13:39:44

+0

@湯姆:安裝LXML仍然是值得的額外的XPath的支持,不過,這是非常好的。 – nosklo 2010-03-04 13:41:52