xml: Werte extrahieren

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
dh233
User
Beiträge: 37
Registriert: Samstag 8. Juli 2006, 08:26

Hi!

Ich habe folgendes Problem: Ich will von einem XML-File bestimmte Tags (mit deren Werten und Attributen) auslesen und diese dann in einem neuen xml-File zusammenführen.

Beispiel:

Code: Alles auswählen

<test>
	<tag1 name="blabla">wert1</tag1>
	<tag2>wert2</tag2>
</test>
Nun möchte ich beispielsweise nur <tag2>wert2</wert2> entnehmen und ein neues xml-file mit folgender struktur bauen:

Code: Alles auswählen

<result>
	<tag2>wert2</tag2>
</result>
Hintergrund: Ich habe später mehrere xml-Files, von welchen ich dann eben spezielle Werte entnehmen möchte, um ein eigenes XML-File zu bauen.

P.S.: Schön wäre es auch, wenn ich die namen der Tags umbenennen könnte.

Ich dachte, dass hier eventuell XSLT die passende Technik wäre, aber was meint ihr dazu? Mich würde vor allem interessieren, welche Programme für diese Aufgabe besonders geeignet sind.

Danke, lG

dh233
Benutzeravatar
Hannes-Spz
User
Beiträge: 123
Registriert: Sonntag 7. August 2005, 22:42

schau mal, ob das was für dich ist:
http://pyxml.sourceforge.net/topics/
lg hannes
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

dh233 hat geschrieben:Ich habe folgendes Problem: Ich will von einem XML-File bestimmte Tags (mit deren Werten und Attributen) auslesen und diese dann in einem neuen xml-File zusammenführen.
Hi dh233!

Mit ElementTree bist du auf der sicheren Seite, das wird ab Python 2.5 sogar mit dabei sein.

http://effbot.org/zone/element-index.htm

Das Generieren von XML-Dateien ist damit ein Kinderspiel. Allerdings habe ich damit noch nie eine XML-Datei geparst. Daber dazu findest du sicher eine Hilfe auf der Website.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

Kleines Beispiel mit ElementTree:

Code: Alles auswählen

from elementtree import ElementTree as etree

source = '''\
<test> 
     <tag1 name="blabla">wert1</tag1> 
     <tag2>wert2</tag2> 
</test>
'''

root = etree.fromstring(source)
wert = root.find('tag2').text

new = etree.Element('result')
tag = etree.SubElement(new, 'tag2')
tag.text = wert
etree.dump(new)
dh233
User
Beiträge: 37
Registriert: Samstag 8. Juli 2006, 08:26

Vielen Dank, das hilft mir weiter! Denn das Ganze mit der 4Suite zu machen ist meiner Meinung nach ziehmlich unelegant und wenn dann ElementTree sowieso in Python 2.5 dabei ist ist das umso besser :lol:

lG

dh233
Antworten