XML Datei auslesen mit _XmlMdiDom.au3

  • Hi Leute,

    habe schon ein bisschen gestöbert aber nichts passendes gefunde.

    Also ich habe es hinbekommen eine XML zuschreiben. Nun würde ich sie mit einem anderen Script gerne auslesen.

    Also das ist eine XML die nur einen Root-Eintrag hat und darunter nur Nodes. Jetzt würde ich gerne die Nodes zählen. Habe die folgende Funktion verwendet, der Rückgabewert dieser Funktion ist aber immer 1 egal wieviel Einträge in der XML sind.

    Funktion:

    Code
    $XML_Entries = _XMLGetNodeCount ("/Programs", "", $NODE_ELEMENT)

    XML Datei:

    Ich dachte mir ich zähle die Einträge und gehe Sie dann in einer Schleife durch und lese Sie aus. Die zweite Frage ist: Welche Funktion verwende ich dann zum auslesen?

    Danke für Eure Hilfe! :S

    Einmal editiert, zuletzt von Electron23 (29. Januar 2009 um 19:57)

  • warum hast du einen anderen thread aufgemacht und nicht mal auf ne antwort gewartet?^^

    Padmak

  • Weil ich in einem anderen Forum schonmal darauf angesprochen wurde, dass man für jede Frage einen neuen Thread aufmachen soll!!! :rolleyes:
    Und das hab ich gemacht. Ich denke das ist dann einfacher, wenn man danach sucht, die antwort zu finden. also ich würde das begrüßen.
    Desweiteren hätte ich gerne beide Fragen beantwortet.... :D :D ?( ?(

  • Ich denke ich kann die eingehenden Daten schon verarbeiten. ^^ :D
    Wenn dann mal welche kommen würden. ^^

  • Hi,

    wenn Dein XML File immer so aussieht:

    1. + 2. te Zeile

    <?xml version="1.0" ?>
    <Programs>

    und letzte Zeile

    </Programs> und ohne Leerzeilen, bzw. CRLF,

    kurz und schmerzlos: $XML_Entries = _FileCountLines ("Pfad und Name XML Datei") - 3

    Ansonsten _FileReadtoArray und in Schleife Array mit StringInStr nach <Install Program=" abfragen und zählen.

    ;-))

    Stefan

    [edit]

    Vielleicht ist die Lösung auch hier versteckt:

    http://www.autoitscript.com/forum/index.php?showtopic=84653&hl=_XMLGetNodeCount

    3 Mal editiert, zuletzt von ojo (29. Januar 2009 um 15:53)

  • Danke ojo,

    also dieses beiden Zeilen bleiben immer gleich:

    <?xml version="1.0" ?>
    <Programs>

    aber die Einträge ab dort also:

    <Install Program="DivX" Description="" />

    verändert sich immer also die Anzahl... Geht es trotzdem noch mit der beschriebenen Funktion? Und gibt es keine Funktion in der _XmlMdiDom.au3 die das kann so wie ich das beschrieben habe?

    [EDIT]
    So wie das in dem Beispiel gemacht wurde/so ähnlich habe ich es auch gemacht, er zeigt mir aber leider immer nur "1" an wenn ich debuge mit einer MsgBox.

  • Ich denke, du willst die Zahö der Install-nodes zählen, du zählst aber die Programs-Nodes. Ich denke, es sollte so gehen:

    [autoit]

    $XML_Entries = _XMLGetNodeCount ("/Programs/Install", "", $NODE_ELEMENT)

    [/autoit]
  • Danke progandy,

    kaum macht mans richtig schon funktionierts oder wie hieß der Spruch :D :D :D :D :thumbup: :thumbup: :thumbup: