6 pièce(s) jointe(s)
Problème affichage namespace avec lxml
Bonjour, je viens de commencer à développer en Python et je ne suis pas une experte non plus en xml.
J’ai des problèmes avec l’utilisation de la librairie lxml et la gestion des namespaces.
Je cherche à modifier le fichier xml suivant:
Pièce jointe 271784
Je souhaite obtenir le xml ci-dessous
Pièce jointe 271785
Pour cela j’utilise le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| from lxml import etree as ET
parser = ET.XMLParser(remove_blank_text=True)
tree = ET.parse('namespace.xml',parser)
root = tree.getroot()
child1 = root.find('.//{http://www.isotc211.org/2005/gmd}child1')
parent = child1.getparent()
id = root.index(child1)
child2 = ET.Element('{http://www.isotc211.org/2005/gmd}child2', nsmap = {'srv':'http://www.isotc211.org/2005/srv'})
child_child2 = ET.SubElement(child2,'{http://www.isotc211.org/2005/gco}CharacterString')
child_child2.text = 'text'
parent.insert(id+1,child2)
ET.ElementTree(root).write('namespace2.xml', pretty_print = True) |
Pièce jointe 271788
Le problème est que je n’arrive pas à faire afficher le namespace spécifié dans le code dans le fichier xml de sortie. J’obtiens le résultat suivant :
Pièce jointe 271790
Je ne sais pas si c’est pertinent, dans le code, de définir un namespace à « child2 » sachant qu’il l’a déjà hérité de « parent ».
Mais comment faire afficher le namespace voulu dans la balise « child2 » ?
Avez-vous des idées ?
Merci beaucoup de votre aide
[Python 3.X] Problème affichage namespace avec lxml
Bonjour bistouille,
merci beaucoup pour tes conseils.
Cependant, je ne vois pas ce qur tu veux dire par "changer l'url", j'ai besoin d'avoir le namespace 'srv':'http://www.isotc211.org/2005/srv' qui s'affiche et pas un autre. Comment faire?
1 pièce(s) jointe(s)
[Python 3.X] Problème affichage namespace avec lxml
Bonjour bistouille,
je suis d'accord avec toi qu'il faut éviter de redéfinir un namespace déjà défini plus haut dans l'arborescence. Mais dans ce cas, comment le faire apparaître dans le xml sans le redéfinir?
Pièce jointe 273550
Merci beaucoup
[Python 3.X] Problème affichage namespace avec lxml
Merci beaucoup pour le conseil