Hallo miteinander
Für ein aktuelles Projekt habe ich mich das erste Mal mit Pyhton beschäftigt und beschäftige mich weiterhin.
Ich habe für dieses Projekt eine Reihe von XML Files, welches analysiert werden sollen.
Zunächst habe ich Elementknoten ausgelesen und extern gespeichert, nun ist nützlich die Attribute samt ihren Werten auszulesen.
http://docs.python.org/library/xml.dom.html
Leider habe ich hier nur eine Möglichkeit gefunden die unter Benutzung der Namensattribute funktioniert, die verschiedenen XML Files haben aber eine Vielzahl von verschiedenen Attributen, somit macht eine Auswahl mittels Namen keinen Sinn.
Ich hoffe, mein Problem ist deutlich geworden und die fachkundigen Forenbesucher können mir ggf. eine Möglichkeit offenbaren.
Vielen Dank bereits hierfür
Daniel
XML Attribute Auslesen
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Wieso so umständlich mit DOM? lxml wurde Dir ja schon empfohlen und bietet wesentlich schönere APIs zur Verarbeitung von xml.Murx24 hat geschrieben: Ich habe mir jetzt das Paket py-dom-xpath besorgt, welches unter DOM funktioniert.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Weil ich bis jetzt außer das Auslesen der Attribute alles damit hinbekommen habe, somit wäre es für mich die einfachste Art so fortzufahren.
Bis dato kann ich die Adresse und die Values der Attribute auslesen, aber leider nicht den eigentlichen Attributnamen.
Gibt es denn eine Möglichkeit mittels DOM dieses zu bewerkstelligen? Wäre sehr hilfreich, wenn jemand sagen könnte ob dies mit DOM geht und wenn ja wie.
Weil es wäre für mich optimal DOM weiternutzen zu können.
Danke
Code: Alles auswählen
import unittest
import xml.dom.minidom
import xpath
class TestAbbreviations(unittest.TestCase):
"""Section 2.5: Abbreviated Syntax"""
def test_para_children(self):
doc = xml.dom.minidom.parseString("""
<doc>
<process_call indexxxx="20" pid="2628"/>
<div id="2" />
<para1 id="3" />
</doc>
""").documentElement
result = xpath.find('//process_call/attribute::*', doc)
print result
Gibt es denn eine Möglichkeit mittels DOM dieses zu bewerkstelligen? Wäre sehr hilfreich, wenn jemand sagen könnte ob dies mit DOM geht und wenn ja wie.
Weil es wäre für mich optimal DOM weiternutzen zu können.
Danke