2011-10-18 86 views
0

我有一個關於Python,XML和ID的問題。通過Python自動解析XML和排序節點屬性

我的XML是:

<settings> 
    <plugin id="1"> 
      <param id="1" name="mailsend" value="Send Mail" /> 
      <param id="2" name="mailfunc" value="func/sendmail.py" /> 
      <param id="3" name="mailfunccount" value="3" /> 
      <param id="4" name="mailto" value="Mail to" /> 
      <param id="5" name="mailsub" value="Mail subject" /> 
      <param id="6" name="mailcont" value="Mail content" /> 
      <param id="7" name="senderconfigcount" value="2" /> 
      <param id="8" name="senderid" value="[email protected]" /> 
      <param id="9" name="senderpw" value="somepasswd" /> 
    </plugin> 
    <plugin id="2"> 
      <param id="1" name="taropen" value="Open Tarfile" /> 
      <param id="2" name="tarfunc" value="func/tarac.py" /> 
      <param id="3" name="tarfunccount" value="4" /> 
      <param id="4" name="tarname" value="Tar name" /> 
      <param id="5" name="tarloc" value="Tar location" /> 
      <param id="6" name="tardest" value="Tar destination" /> 
      <param id="7" name="tarstat" value="Delete tar?" /> 
    </plugin> 
</settings> 

但我想不出如何做的事情在我的計算器主題。

我想訂購他們是這樣的:

Send Mail 
func/sendmail.py 
3 
Mail to 
Mail subject 
Mail content 

唧唧歪歪。當我打印出來,只打印刪除焦油?部分。所以,我卡住了。

我的代碼是:

from xml.dom import minidom 
myfile = minidom.parse('data/config.xml') 

testing = myfile.getElementsByTagName('param') 
for node in testing: 
    myvar = node.getAttribute('value') 

回答

0

嘛XML顯然是嵌套的,因此您的代碼將需要按照嵌套。你需要兩個嵌套對於陳述:

for plugin in myfile.getElementsByTagName('plugin'): 
    print "Plugin "+plugin.getAttribute('id') 
    for param in plugin.getElementsByTagName('param'): 
     print param.getAttribute('value') 
    print 
+0

非常感謝!我還有一個問題要問你。如果我想指定一個字符串來打印我應該如何處理ID? – nightrider84