Seite 1 von 1

XML Attribute Auslesen

Verfasst: Dienstag 5. Oktober 2010, 16:15
von Murx24
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

Re: XML Attribute Auslesen

Verfasst: Dienstag 5. Oktober 2010, 16:31
von DasIch
Schau dir lxml an und nutz XPath statt minidom.

Re: XML Attribute Auslesen

Verfasst: Mittwoch 6. Oktober 2010, 08:59
von Murx24
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

Re: XML Attribute Auslesen

Verfasst: Mittwoch 6. Oktober 2010, 09:05
von Hyperion
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.

Re: XML Attribute Auslesen

Verfasst: Mittwoch 6. Oktober 2010, 10:53
von Murx24
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

Re: XML Attribute Auslesen

Verfasst: Mittwoch 6. Oktober 2010, 12:30
von Murx24
Habe es hin bekommen. Jetzt muss nur noch die Zuordnung her