XML Attribute Auslesen

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
Murx24
User
Beiträge: 4
Registriert: Dienstag 5. Oktober 2010, 16:01

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
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Schau dir lxml an und nutz XPath statt minidom.
Murx24
User
Beiträge: 4
Registriert: Dienstag 5. Oktober 2010, 16:01

Danke

Ich habe mir jetzt das Paket py-dom-xpath besorgt, welches unter DOM funktioniert. Mal schauen ob das klappt. Wenn jemand Codeschnippsel dazu hat, immerher damit ;-)

Danke
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Murx24 hat geschrieben: Ich habe mir jetzt das Paket py-dom-xpath besorgt, welches unter DOM funktioniert.
Wieso so umständlich mit DOM? lxml wurde Dir ja schon empfohlen und bietet wesentlich schönere APIs zur Verarbeitung von xml.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Murx24
User
Beiträge: 4
Registriert: Dienstag 5. Oktober 2010, 16:01

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.

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
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
Murx24
User
Beiträge: 4
Registriert: Dienstag 5. Oktober 2010, 16:01

Habe es hin bekommen. Jetzt muss nur noch die Zuordnung her
Antworten