XML Import

  • Hallo Forum,


    ich versuche mich seit kurzem mit dem Import von XML Dateien und dem Parsen mit dem domparser.
    Ich komme jedoch nicht so recht weiter.
    Mein Problem muss doch mit ein paar Zeilen lösbar sein???


    Folgende Situation:
    Ich habe ein XML-File das wie folgt aufgebaut ist:

    Code
    <csdemo>    <customer>      <company>Firma1</company>       <title>Herr</title>      <first_name>Peter</first_name>      <next_name>Pan</next_name>    </customer>    <reseller typ="kat1">      <company>Firma2</company>      <first_name>Lisa</first_name>      <family_name>Lustig</family_name>      <phone>0171-121221</phone>    </reseller></csdemo>




    Hier mein Code:


    Wie kann ich nun auf die Einzelnen Elemente (Tags) direkt zugreifen?
    Wie auf ein Attribut?


    Das muss doch in ein paar Zeilen machbar sein?


    Danke für die wohl einfache Lösung:


    Grüße
    Bernd

    ---------------------------------
    Alles wird gut! :sunclaus:

  • Du könntest ganz einfach mal in die Hilfe schauen zum NotesDOMParser.
    Da steht ein Codebeispiel, das durch den Baum durchgeht.
    Das musst du dann eben entsprechend auf deine Bedürfnisse anpassen

  • Hallo Taurec,


    mit der Antwort habe ich ja fast gerechnet! ;)
    Natürlich habe ich die Hilfe zum Parser gelesen, daher kommt ja meine Frage!
    Im Beispiel wird rekursiv der Tag-Baum durchlaufen.
    Soweit so gut...


    Ich wollte jedoch direkt auf ein Element im eingelesenen XML-Baum zugreifen.


    z-Bsp. so irgendwie:
    domParser.Document.child[1].Getelementsbytagname(Elementname)
    Geht das überhaupt oder muss ich hier das gesamte XML wie im Beispiel durchlaufen und mir die evtl. benötigen Werte zwischenspeichern? (Was ziemlich unschön wäre!)


    Nur wie kann ich auf ein Element der ersten und zweiten Ebenen Zugreifen und wie kann ich die eventuell vorhanden Attribute auslesen?



    Gruß
    Bernd

    ---------------------------------
    Alles wird gut! :sunclaus:

  • Steht in der Hilfe auch drin: Direkt geht nicht, aber übers Pipelining welches dort beschrieben ist kannst du während der Konvertierung auf einzelne Knoten zugreifen oder eben über das Durchlaufen der Elemente

  • Hallo Taurec,


    dann muss ich wohl ein Verständnisproblem mit dem SAXParser und DOMParser haben.
    Der DOMParser sollt doch das XML-File als Baum resistent im Speicher halten. Deshalb ist er ja auch unter anderem langsamer als der SAXParser.
    Aber was nützt mir ein resistenter XML-Baum im Speicher wenn ich diesen nicht abfragen kann?


    Zudem gibt's in der Klasse "DOMNodeList" die Methode "getElementsByTagName(String tagname)".
    Wenn ich die Hilfe verstehe gereift doch genau diese Methode auf die Elemente zu!
    Somit sollte es doch möglich sein TAG-Elemente auszulesen.


    Grüße
    Bernd

    ---------------------------------
    Alles wird gut! :sunclaus:

  • Tut er auch.


    Aber dafür musst du auch auf den Baum zugreifen und das wäre eben über die Document Eigenschaft.
    Und genau das tut das von mir genannte Beispiel des Durchlaufens.
    Hättest du es dir angeschaut, dann wären dir da auch die entsprechenden Methoden aufgefallen, die es zum Zugriff darauf gibt