xmlファイルをPythonに読み込み、xmlファイルから特定の要素を取り出して、結果をxmlファイルに書き戻そうとしています(基本的には、いくつかの要素を含まない元のxmlファイルです)。.removeChild(source)を使用すると、削除したい個々の要素が削除されますが、代わりに空白が残り、ファイルが非常に読みにくくなります。すべての空白を含むファイルをまだ解析できることはわかっていますが、特定の要素の属性の値を手動で変更する必要があり、これを行うのが困難(およびアニー)になる場合があります。私は確かに手で空白を削除することができますが、これらのxmlファイルが数十ある場合、それは実際には実行可能ではありません。
.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()
助けてくれてありがとう。