<project id = "CLUSTER" name = "Projet Cluster ESA">
<mission-time-span start = "2000-08-21" />
<observatories>
<observatory id = "C1" name = "Cluster 1">
<instruments>
<instrument id = "CIS-CODIF"/>
<instrument id = "CIS-HIA"/>
<instrument id = "CIS-HSK"/>
<instrument id = "FGM"/>
</instruments>
</observatory>
</project>
Questions :
Existe t'il dans l'api DOM un moyen de renommer un noeud ?
Sinon, faut-il que j'en cree un nouveau, y recopie le contenu de
l'ancien, puis supprime l'ancien ?
Je peux aussi faire ca avec un editeur de texte de type sed, ou avec des
regex python, mais je suis en train de me familiariser avec xml et
j'aurais aimé faire ça le plus proprement possible.
Il doit également être possible de le faire avec l'API Sax mais je
préfèrerai m'en tenir à DOM pour l'instant.
<project id = "CLUSTER" name = "Projet Cluster ESA">
<mission-time-span start = "2000-08-21" />
<observatories>
<observatory id = "C1" name = "Cluster 1"> <instruments> <instrument id = "CIS-CODIF"/> <instrument id = "CIS-HIA"/> <instrument id = "CIS-HSK"/> <instrument id = "FGM"/> </instruments> </observatory>
</project>
Questions : Existe t'il dans l'api DOM un moyen de renommer un noeud ?
Sinon, faut-il que j'en cree un nouveau, y recopie le contenu de l'ancien, puis supprime l'ancien ?
Je peux aussi faire ca avec un editeur de texte de type sed, ou avec des regex python, mais je suis en train de me familiariser avec xml et j'aurais aimé faire ça le plus proprement possible.
Il doit également être possible de le faire avec l'API Sax mais je préfèrerai m'en tenir à DOM pour l'instant.
Merci d'avance pour votre aide.
Autre solution :
from xml.dom.minidom import parse from xml.xpath import Evaluate
def convertir (filename): doc = parse (filename)
# recherche du noeud a modifier node = Evaluate ("/project", doc) [0]
doc.renameNode (node, None, "mission")
print doc.toxml()
Bonjour,
Je voudrais faire une sorte de convertisseur de fichiers xml en
utilisant l'api xml.dom.minidom
J'aimerais changer dans une serie de fichiers xml le nom des noeuds
racine de <project> en <mission>.
Voici le debut de mon code :
from xml.dom.minidom import parse
from xml.xpath import Evaluate
<project id = "CLUSTER" name = "Projet Cluster ESA">
<mission-time-span start = "2000-08-21" />
<observatories>
<observatory id = "C1" name = "Cluster 1">
<instruments>
<instrument id = "CIS-CODIF"/>
<instrument id = "CIS-HIA"/>
<instrument id = "CIS-HSK"/>
<instrument id = "FGM"/>
</instruments>
</observatory>
</project>
Questions :
Existe t'il dans l'api DOM un moyen de renommer un noeud ?
Sinon, faut-il que j'en cree un nouveau, y recopie le contenu de
l'ancien, puis supprime l'ancien ?
Je peux aussi faire ca avec un editeur de texte de type sed, ou avec des
regex python, mais je suis en train de me familiariser avec xml et
j'aurais aimé faire ça le plus proprement possible.
Il doit également être possible de le faire avec l'API Sax mais je
préfèrerai m'en tenir à DOM pour l'instant.
Merci d'avance pour votre aide.
Autre solution :
from xml.dom.minidom import parse
from xml.xpath import Evaluate
def convertir (filename):
doc = parse (filename)
# recherche du noeud a modifier
node = Evaluate ("/project", doc) [0]
<project id = "CLUSTER" name = "Projet Cluster ESA">
<mission-time-span start = "2000-08-21" />
<observatories>
<observatory id = "C1" name = "Cluster 1"> <instruments> <instrument id = "CIS-CODIF"/> <instrument id = "CIS-HIA"/> <instrument id = "CIS-HSK"/> <instrument id = "FGM"/> </instruments> </observatory>
</project>
Questions : Existe t'il dans l'api DOM un moyen de renommer un noeud ?
Sinon, faut-il que j'en cree un nouveau, y recopie le contenu de l'ancien, puis supprime l'ancien ?
Je peux aussi faire ca avec un editeur de texte de type sed, ou avec des regex python, mais je suis en train de me familiariser avec xml et j'aurais aimé faire ça le plus proprement possible.
Il doit également être possible de le faire avec l'API Sax mais je préfèrerai m'en tenir à DOM pour l'instant.
Merci d'avance pour votre aide.
Autre solution :
from xml.dom.minidom import parse from xml.xpath import Evaluate
def convertir (filename): doc = parse (filename)
# recherche du noeud a modifier node = Evaluate ("/project", doc) [0]
Il suffisait d'affecter tagName au lieu de nodeName. Je n'ai pas bien saisi la différence entre les deux mais ça marche. Peut-être que nodeName est un attribut en lecture seule et que tagName l'est en lecture/écriture.
Il suffisait d'affecter tagName au lieu de nodeName.
Je n'ai pas bien saisi la différence entre les deux mais ça marche.
Peut-être que nodeName est un attribut en lecture seule et que tagName
l'est en lecture/écriture.
Il suffisait d'affecter tagName au lieu de nodeName. Je n'ai pas bien saisi la différence entre les deux mais ça marche. Peut-être que nodeName est un attribut en lecture seule et que tagName l'est en lecture/écriture.