Python 2.5: ElementTree und UML in XML

Ich arbeite mit einer XML-Datei, die ein UML-Modell darstellt. Hier ist ein Beispiel dafür, was es ist:

<?xml version="1.0" encoding="utf-8"?>
<XMI xmi.version="1.1" xmlns:UML="omg.org/UML13">
 <XMI.content>
  <UML:Model name="Model" xmi.id="_0">
   <UML:Namespace.ownedElement>
    <UML:Package name="Standard" xmi.id="_5">
     </UML:Package>
   </UML:Namespace.ownedElement>
   </UML:Model>
 </XMI.content>
</XMI>

Es ist ein Rhapsody-Importformat.

Ich möchte diese XML-Datei mithilfe von ElementTree in Python 2.5 ändern.

Ich habe mindestens ein Problem, aber ich habe 2 Konsequenzen festgestellt, hier sind sie:

Mit diesem einfachen Code:

import xml.etree.ElementTree as ET
tree = ET.parse('source.xml')
root = tree.getroot()
tree.write('output.xml')

Die Ausgabe ist: (und ich wollte keine Änderung)

<XMI xmi.version="1.1">
   <XMI.content>
      <ns0:Model name="FPLN_Model" xmi.id="_0" xmlns:ns0="omg.org/UML13">
         <ns0:Namespace.ownedElement>
            <ns0:Package name="Standard" xmi.id="_5">
            </ns0:Package>
         </ns0:Namespace.ownedElement>
      </ns0:Model>
   </XMI.content>
</XMI>

Ich habe nach diesem Problem gesucht und ein Thema zum Stackoverflow gefunden, das hinzugefügt werden soll

ET.register_namespace("UML", "omg.org/UML13")

Aber ein Fehler tritt auf:

AttributeError: 'module' object has no attribute 'register_namespace'

Die zweite Konsequenz ist, dass mit einem Code wie folgt:

for Package_Node in Temp_Node.find('UML:Package'):

Ich erhalte den Fehler:SyntaxError: expected path separator (:)

Hat jemand eine Idee, mir zu helfen?

Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage