2011-10-18 9 views
0

私はPython、XMLおよびIDに関する質問があります。PythonでIDで自動的に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> 

しかし、私は私のstackoverflowの対象に事を行う方法を見つけ出すことができませんでした:

私のXMLです。

私はこのようにそれらを注文したい:

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

ありがとうございました:あなたは文のための2つのネストされたが必要です!私はもう少しあなたに質問する質問があります。 1文字列を指定してIDを使って印刷する必要がある場合は、 – nightrider84

関連する問題