J'essaye de lire un fichier xml en python, d'extraire certains éléments du fichier xml, puis d'écrire les résultats dans un fichier xml (donc en gros c'est le fichier xml d'origine sans plusieurs éléments). Quand j'utilise .removeChild (source), il supprime les éléments individuels que je veux supprimer mais laisse un espace blanc à sa place rendant le fichier très illisible. Je sais que je peux toujours analyser le fichier avec tous les espaces, mais il y a des moments où j'ai besoin de modifier manuellement les valeurs des attributs de certains éléments et cela rend difficile (et annyoing) de le faire. Je peux certainement supprimer les espaces à la main, mais si j'ai des dizaines de ces fichiers xml, ce n'est pas vraiment faisable.Python xml.dom.minidom removeChild problème d'espaces blancs
Existe-t-il un moyen de faire .removeChild et de supprimer les espaces blancs?
Voici ce que mon code ressemble à:
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()
Merci beaucoup pour l'aide.
comment écrivez-vous le fichier xml? 'Node.toxml()'? regardez 'Node.toprettyxml()' et 'Node.writexml()' –
J'ai essayé de jouer avec toxml() et toprettyxml() et toujours le même problème d'avoir des blocs d'espace blanc où les éléments que j'ai enlevés étaient . Si je ne peux pas trouver de solutions en utilisant xml.dom.mini.dom, je suppose que je peux simplement utiliser python pour rechercher dans le document et supprimer toutes les lignes vides, bien que cela semble un peu bâclé pour moi. – Jamie