2016-09-26 62 views
-1

的全部內容,我有一個文件的test.xml爲:XML minidom命名 - 得到的childNodes文本

<?xml version="1.0" encoding="utf-8"?> 
    <SetupConf> 
    <LocSetup> 
    <Src> 
     <Dir1>C:\User1\test1</Dir1> 
     <Dir2>C:\User2\log</Dir2> 
     <Dir3>D:\Users\Checkup</Dir3> 
     <Dir4>D:\Work1</Dir4> 
     <Dir5>E:\job1</Dir5>  
    </Src> 
    </LocSetup> 
    </SetupConf> 

當節點依賴於用戶輸入。在「Dir」節點中,它可以是1,2,5,10個dir結構。按規定我可以用下面的Python代碼@Padraic坎寧安的幫助,以從中提取數據的test.xml:

from xml.dom import minidom 
from StringIO import StringIO 
dom = minidom.parse('Test.xml') 
Src = dom.getElementsByTagName('Src') 
output = ", ".join([a.childNodes[0].nodeValue for node in Src for a in node.getElementsByTagName('Dir')]) 
print [output] 

和獲取輸出:

C:\User1\test1, C:\User2\log, D:\Users\Checkup, D:\Work1, E:\job1 

但預期輸出是:

['C:\\User1\\test1', 'C:\\User2\\log', 'D:\\Users\\Checkup', 'D:\\Work1', 'E:\\job1'] 

回答

0

那麼它是由我自己解決:

from xml.dom import minidom 
DOMTree = minidom.parse('Test0001.xml') 
dom = DOMTree.documentElement 
Src = dom.getElementsByTagName('Src') 

for node in Src: 

    output = [a.childNodes[0].nodeValue for a in node.getElementsByTagName('Dir')] 

    print output 

獲取輸出: [u'C:\ User1 \ test1',u'C:\ User2 \ log',u'D:\ Users \ Checkup',u'D:\ Work1',u 'E:\ job1']


我確信有更簡單的另一種方式..請讓我知道..謝謝你。