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# )
Suche gute XML Lib
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.
"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.
-
- 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:
C#:
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.
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>
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
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.
@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()
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
-
- 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
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
Moin moin! PyRXP ist veraltet? Woher nimmst du die Erkenntnis?BLU3L30PARD hat geschrieben:Moin!
...PyXML sieht ja ganz gut aus, ist aber total veraltet....
I'm not getting paid for being Mr. Nice Guy!
@querdenker: Und woher nimmst Du die Erkenntnis, dass PyRXP irgendetwas mit PyXML zu tun hätte?!
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
PyXML hatte das letzte Release vor etwas mehr als 6 Jahren…querdenker hat geschrieben:Moin moin! PyRXP ist veraltet? Woher nimmst du die Erkenntnis?BLU3L30PARD hat geschrieben:Moin!
...PyXML sieht ja ganz gut aus, ist aber total veraltet....
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
autschn.... "Leicht" danebengelesen.
I'm not getting paid for being Mr. Nice Guy!