我想读取一个xml文件到python中,从xml文件中拉出某些元素,然后将结果写回到一个xml文件(所以基本上它是原始的xml文件没有几个要素)。当我使用.removeChild(源代码)时,它会删除我想要删除的单个元素,但会留下空白区域,使文件变得无法读取。我知道我仍然可以用所有的空格解析文件,但有时候我需要手动修改某些元素的属性值,并且这样做很困难(并且非常麻烦)。我当然可以手动删除空白,但如果我有几十个这些XML文件不是真的可行的话。Python xml.dom.minidom removeChild空白问题
有没有办法做.removeChild并让它删除白色空间?
这里是我的代码如下所示:
dom=parse(filename)
main=dom.childNodes[0]
sources = main.getElementsByTagName("source")
for source in sources :
name=source.getAttribute("name")
spatialModel=source.getElementsByTagName("spatialModel")
val1=float(spatialModel[0].getElementsByTagName("parameter")[0].getAttribute("value"))
val2=float(spatialModel[0].getElementsByTagName("parameter")[1].getAttribute("value"))
if angsep(val1,val2,X,Y)>=ROI :
main.removeChild(source)
else:
print name,val1,val2,angsep(val1,val2,X,Y)
f=open(outfile,"write")
f.write("<?xml version=\"1.0\" ?>\n")
f.write(dom.saveXML(main))
f.close()
感谢很多的帮助。
你怎么写xml文件? 'Node.toxml()'?看'Node.toprettyxml()'和'Node.writexml()' –
我试过用toxml()和toprettyxml()搞乱了,并且仍然得到了同样的问题, 。如果我找不到使用xml.dom.mini.dom的解决方案,我想我可以直接使用python搜索文档并删除所有空行,尽管对我来说这看起来很sl sl。 – Jamie