Frage

Was würden Sie eine XML-Datei unter Beibehaltung so viel wie möglich von Layout, einschließlich der Vertiefung und Kommentare?

verwenden zu ändern

Mein Problem ist, dass ich ein paar massiven Hand bearbeitet XML-Dateien beschreiben eine Benutzeroberfläche haben, und jetzt brauche ich mehrere Attribute in eine andere Sprache zu übersetzen.

Ich habe versucht, dies mit Python + ElementTree tun, aber es hat nicht erhalten weder Leerzeichen noch Kommentare.

Ich habe XSLT gesehen für ähnliche Fragen vorgeschlagen werden, aber ich glaube nicht, dass es eine Alternative in diesem Fall, da ich für jedes Attribut einer gewisse Logik und Lookups tun müssen, um.

Es wäre besser, wenn Attribut, um in jedem Element als gut erhalten ist, aber ich kann geänderte Reihenfolge tolerieren.

War es hilfreich?

Lösung

sollte Jede DOM-Manipulation Modul Suite Ihre Bedürfnisse. Das Layout ist nur ein Textdaten, so dass es als Textknoten in DOM dargestellt:

>>> from xml.dom.minidom import parseString
>>> dom = parseString('''\
... <message>
...   <text>
...     Hello!
...   </text>
... </message>''')
>>> dom.childNodes[0].childNodes
[<DOM Text node "u'\n  '">, <DOM Element: text at 0xb765782c>, <DOM Text node "u'\n'">]
>>> text = dom.getElementsByTagName('text')[0].childNodes[0]
>>> text.data = text.data.replace(u'Hello', u'Hello world')
>>> print dom.toxml()
<?xml version="1.0" ?><message>
  <text>
    Hello world!
  </text>
</message>

Andere Tipps

Wenn Sie einen XSLT-Prozessor verwenden, wie zum Beispiel xt , dann können Sie Erweiterung schreiben Methoden in Java, die jede beliebige Transformation durchführen können Sie benötigen.

Having said that, die ich verwendet habe Python xml.dom.minidom Modul erfolgreich für diese Art von Transformation. Es tut bewahren Leerzeichen und Layout.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top