Ändere xml mit python

Ich habe XML-Datei wie folgt:

<lala> <blabla> <qweqwe>test</qweqwe> </blabla> </lala> 

Ich muss es öffnen und den Test in qweqwe auf einen anderen Wert ändern, zum Beispiel neuestes. Danach muss ich es wie eine neue xml-Datei speichern. Bitte helfen Sie mir, wie es in der besten Weise mit Python tun?

  • Wie konstruiere ich SOAP-Nachricht mit pysimplesoap?
  • Parsing xml to pandas Datenrahmen wirft Speicherfehler
  • Exakte Stringsuche in XML-Dateien?
  • Gibt es eine Möglichkeit, eine Zeilennummer aus einem ElementTree Element zu erhalten
  • Verwenden von pyKML zum Analysieren von KML-Dokumenten
  • Ich möchte nicht, dass Spyne meine Antwort wickelt
  • Python: Unicode und ElementTree.parse
  • OSError: [Errno 36] Dateiname zu lang:
  • 5 Solutions collect form web for “Ändere xml mit python”

    Ich empfehle die Verwendung von lmxl – ein einfaches Beispiel ist:

     from lxml import etree as et >>> xml="""<lala> <blabla> <qweqwe>test</qweqwe> </blabla> </lala> """ >>> test = et.fromstring(xml) >>> for i in test.xpath('//qweqwe'): i.text = 'adsfadfasdfasdfasdf' # put logic here >>> print et.tostring(test) # write this to file instead <lala> <blabla> <qweqwe>adsfadfasdfasdfasdf</qweqwe> </blabla> </lala> 

    Wie bei allen anderen XML-Fragen hier für python Blick auf lxml

    Link: http://lxml.de/

    Für Aufgaben wie diese, finde ich die Minidom in Bibliothek gebaut, um schnell und einfach zu sein. Allerdings kann ich nicht sagen, dass ich umfangreiche Vergleiche davon zu verschiedenen anderen Bibliotheken in Bezug auf Geschwindigkeit und Speicherverbrauch gemacht habe.

    Ich mag es verursachen sein geringes Gewicht, schnell zu entwickeln und präsentieren seit Python 2.0

    Hier ist eine Frage zum Ändern des Wertes eines xml-Elements, aber es sollte nicht zu viel von einer Strecke sein, um die vorgeschlagene Antwort zu verwenden, um den Text eines xml-Elements zu ändern.

    Wenn du versuchst, ALLE Instanzen des Tests zu ändern, kannst du einfach die Datei öffnen und nach einem String Match suchen

    damit

     result = [] f = open("xml file") for i in f: if i == "<qweqwe>test</qweqwe>": i = "<qweqwe>My change</qweqwe>" result.append(i) f.close() f = open("new xml file") for x in result: f.writeline(x) 
    Python ist die beste Programmiersprache der Welt.