我对Python,XML和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="somemail@gmail.com" />
<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主题中做这件事。
我想这样订购:
Send Mail
func/sendmail.py
3
Mail to
Mail subject
Mail content
bla bla bla ..当我打印它时,它只打印删除焦油?部分。所以,我被卡住了。
我的代码是:
from xml.dom import minidom
myfile = minidom.parse('data/config.xml')
testing = myfile.getElementsByTagName('param')
for node in testing:
myvar = node.getAttribute('value')
答案 0 :(得分:0)
那么xml显然是嵌套的,所以你的代码需要遵循嵌套。您需要两个嵌套的 for 语句:
for plugin in myfile.getElementsByTagName('plugin'):
print "Plugin "+plugin.getAttribute('id')
for param in plugin.getElementsByTagName('param'):
print param.getAttribute('value')
print