2012-05-15 265 views
-1

我有一個xml文件「one」,使用xml.dom解析xml文件

+3

和你嘗試過什麼? – gefei

+0

什麼我嘗試是: ' 從進口xml.dom的minidom命名 DOM = minidom.parse中(' sth.xml ') detailList = dom.getElementsByTagName(' 一「)[0] .childNodes 爲每個在detailList: print each.tagName ' – ashokadhikari

+0

它不是一個有效的xml文件它應該有一個根 –

回答

0

XML文件應該像格式,如

<?xml version="1.0" ?> 
<ones> 
<one> 
<a>sth</a> 
<b>sth</b> 
<c>sth</c> 
</one> 
<one> 
<a>x</a> 
<b>y</b> 
<c>z</c> 
</one> 
</ones> 

你可以嘗試如下代碼:

from xml.dom import minidom 

xmldoc = minidom.parse('filePath') 
root = xmldoc.documentElement 

ones = root.getElementsByTagName('one') 

L = [] 
for one in ones: 
    m = {} 
    #print onn.getElementsByTagName('a')[0].childNodes[0].nodeValue 
    #print n.getElementsByTagName('b')[0].childNodes[0].nodeValue 
    #print n.getElementsByTagName('c')[0].childNodes[0].nodeValue 
    for n in one.childNodes: 
     if n.nodeType == n.ELEMENT_NODE: 
       m[n.nodeName] =n.firstChild.nodeValue 
    L.append(m) 
+0

謝謝。現在,如果我想列出一個字典列表 [{'a':sth,'b':sth,'c':sth},{'a':x,'b':y,'c': z}] 這意味着我不提前知道標籤名稱,並且我想要讀取所有存在的數據,tagname:value,我該怎麼辦? – ashokadhikari

+0

我改變了代碼,你可以試試它 –