Je veux produire ce fichier xml avec python
et minidom
:Ajout d'espaces de noms à un python élément DOM
<xml vesion="1.0" encoding="utf-8?>
<package name="Operation" xmlns="http://www.modelIL.eu/types-2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://www.modelIL.eu/types-2.0 modelIL-package-2.0.xsd">
</package>
J'écrivaient ceci:
import xml.dom.minidom as dom
document = dom.Document()
root_xml = document.createElement("package")
root_xml.setAttribute("name", "Operation")
root_xml.setAttributeNS("", "xmlns", "http://www.modelIL.eu/types-2.0")
root_xml.setAttributeNS("xmls", "xsi", "http://www.w3.org/2001/XMLSchema-instance")
root_xml.setAttribute("xsi:schemaLocation", "http://www.modelIL.eu/types-2.0 modelIL-package-2.0.xsd")
root = document.appendChild(root_xml)
print(document.toprettyxml(indent(" "))
Mais la sortie que je reçois est celui-ci:
<xml vesion="1.0" ?>
<package name="Operation" xmlns="http://www.modelIL.eu/types-2.0" xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://www.modelIL.eu/types-2.0 modelIL-package-2.0.xsd">
</package>
Pourquoi dois-je seulement xsi
et non xmlns:xsi
? Ai-je oublié quelque chose?
Merci beaucoup pour votre réponse. Je comprends mieux le setAttributesNS et cela m'a aidé à résoudre mon problème! Et pour votre question, je lie 'root = document.appendChild (root_xml)' parce que je l'ai trouvé plus compréhensible pour moi parce que je donne la racine à d'autres fonctions pour y ajouter des enfants. – user3314570
Content d'entendre ça! Et merci pour votre réponse concernant 'root'. – dasdachs