我有一个关于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
咩咩咩…当我打印它时,它只打印Delete tar?部分。所以,我被卡住了。
我的代码是:from xml.dom import minidom
myfile = minidom.parse('data/config.xml')
testing = myfile.getElementsByTagName('param')
for node in testing:
myvar = node.getAttribute('value')
xml显然是嵌套的,所以您的代码需要遵循嵌套。语句需要两个嵌套:
for plugin in myfile.getElementsByTagName('plugin'):
print "Plugin "+plugin.getAttribute('id')
for param in plugin.getElementsByTagName('param'):
print param.getAttribute('value')
print