Suche gute XML Lib

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
BLU3L30PARD
User
Beiträge: 26
Registriert: Freitag 20. August 2010, 19:31

Moin!

Ich versuche gerade mit XML zu arbeiten aber finde die
XML Module, die standardmäßig bei Python (2.7.1) dabei sind
es zu kompliziert. PyXML sieht ja ganz gut aus, ist aber total veraltet.
Könnt ihr mir vielleicht eine gute Lib empfehlen?

(Am besten wäre eine XML Handhabung ähnlich der von C# ;))
lunar

Was bitte ist denn an ElementTree kompliziert?! Ich hätte ja lxml empfohlen, aber wenn Du schon ElementTree kompliziert findest ...

"Wie in C#" ist im Übrigen wenig zielführende Herangehensweise. Wenn Du "wie in C#" programmieren möchtest, dann programmiere bitte schön C#. Die Einsicht, dass Python nämlich nicht wie C# ist, und ganz andere Herangehensweisen und Lösungsansätze erfordert, wird sich Dir sonst früher oder später recht brutal aufzwingen. ;)
BLU3L30PARD
User
Beiträge: 26
Registriert: Freitag 20. August 2010, 19:31

Ich habe nicht "wie in C#" sondern "ähnlich C#" geschrieben. Das heißt, wenn du den zusammenhang
genau betrachtest, dass die Handhabung ähnlich der in C# sein sollte ;)

in C# sieht das nähmlich so aus:

XML:

Code: Alles auswählen

<?xml version="1.0"?>
<ABC>
    <a>b</a>
    <b>c</b>
</ABC>
C#:

Code: Alles auswählen

XMLReader reader = new XMLReader();
reader.ReadStartElement("ABC"); // ABC Tag öffnen

reader.ReadStartElement("a"); // a Tag öffnen
Console.WriteLine(reader.ReadString()); // Ausgabe: b
reader.ReadEndElement(); // a Tag verlassen

reader.ReadStartElement("b"); // b Tag öffnen
Console.Writeline(reader.ReadString()); // Ausgabe: c
reader.ReadEndElement(); // b Tag verlassen

reader.ReadEndElement(); // ABC Tag verlassen
reader.Close(); // XMLReader schließen
Ich programmiere auch in C#, aber für mein momentanes Projekt verwende ich Python und PyQt und möchte
meine Einstellungen statt der Registry in einer XML Datei speichern und eben auch auslesen.
Und im gegensatz zu dem Auslesen von XML in C# ist die Python Methode / die Methoden einfach etwas
komplizierter...

//Edit: Ich werde jetzt lxml verwenden. Das kommt an das gewünschte schon sehr nah ran.
BlackJack

@BLU3L30PARD: Was ist hier dran bitte komplizierter als an dem gezeigten C#-Quelltext!?

Code: Alles auswählen

from xml.etree import ElementTree as etree


def main():
    doc = etree.parse('test.xml')
    print doc.find('a').text
    print doc.find('b').text


if __name__ == "__main__":
    main()
problembär

Still going strong:

Code: Alles auswählen

#!/usr/bin/env python
# coding: iso-8859-1

import xml.dom.minidom

dom = xml.dom.minidom.parse("test.xml")
ABCnode = dom.getElementsByTagName("ABC")[0] # ABC Tag öffnen
anode = ABCnode.getElementsByTagName("a")[0] # a Tag öffnen
print anode.childNodes[0].nodeValue          # Ausgabe: b
bnode = ABCnode.getElementsByTagName("b")[0] # a Tag öffnen
print bnode.childNodes[0].nodeValue          # Ausgabe: c
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Also minidom kann man doch echt nicht mehr heutzutage, 2011 noch empfehlen?! Langsam und umständlich wären so die "Hauptvorteile" die mir bei minidom einfallen, zu den Nachteilen könnte man noch zählen dass der Code nachher wie Java oder JavaScript ausschaut. Aber selbst bei letzterem hat sich mit Libraries wie jQuery herausgestellt dass *niemand* die DOM-API nutzen will.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Leonidas hat geschrieben:Also minidom kann man doch echt nicht mehr heutzutage, 2011 noch empfehlen?!
Aber es sollte doch so kompliziert sein wie bei C shudder ... sorry ... C sharp. :mrgreen:
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

BLU3L30PARD hat geschrieben:Moin!
...PyXML sieht ja ganz gut aus, ist aber total veraltet....
Moin moin! PyRXP ist veraltet? Woher nimmst du die Erkenntnis?
I'm not getting paid for being Mr. Nice Guy!
lunar

@querdenker: Und woher nimmst Du die Erkenntnis, dass PyRXP irgendetwas mit PyXML zu tun hätte?!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

querdenker hat geschrieben:
BLU3L30PARD hat geschrieben:Moin!
...PyXML sieht ja ganz gut aus, ist aber total veraltet....
Moin moin! PyRXP ist veraltet? Woher nimmst du die Erkenntnis?
PyXML hatte das letzte Release vor etwas mehr als 6 Jahren…
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

:oops: autschn.... "Leicht" danebengelesen.
I'm not getting paid for being Mr. Nice Guy!
Antworten