XML Parser

  • Hallo,

    versuche mich gerade am XML Parser _XMLDomWrapper.au3, komme aber nicht weiter. Habe schon einige Zeit im englischsprachigen Forum gestöbert, aber die verwendeten XML-Datein sind dort ganz anders aufgebaut. Siehe dazu mein Beispiel-XML unten.
    Kann mir jemand verraten wie man auf die Werte der Ports zugreift, also hier die Werte 1080, 1090 und 443.
    Versuche über _XMLGetValue("/..) scheiterten, da nicht klar ist welcher Pfad angegeben werden muss. /section/key/key.. usw ist es auf jeden Fall nicht.
    Schon mal vielen Dank im Voraus für jegliche Tipps.

    Gruß,
    Don

    Einmal editiert, zuletzt von Don (28. Juli 2010 um 17:11)

  • Also wenn du jetzt keine alles könnende XML UDF brauchst, sondern nur ein paar Werte auslesen willst, würd ich das mit Regulären Audrücken machen.

    [autoit]

    #include <Array.au3>
    $sText = ClipGet() ; Text der XML Datei; hier geht natürlich auch FileRead()
    $aPort = StringRegExp($sText,"Port[^>]+>(\d+)",3)
    _ArrayDisplay($aPort)

    [/autoit]
  • Wenn du die Datei besser formatierst, siehst du deinen Pfad einfacher:

    Spoiler anzeigen


    Edit: Und den Pfad musst du dann in XPath schreiben

    Beispiele (Firefox + XPather eignen sich zum testen ;) :(

    Code
    /section/key/key/key[@name='Urls']/key/key[@name='Values']/value[@name='Port']
    //value[@name='Port']

    2 Mal editiert, zuletzt von progandy (23. Juli 2010 um 22:49)

  • Ich verneige mich ehrfurchstvoll vor dem Meister und bedanke mich für die kompetente Hilfe :thumbup:


    Ein Meister bin ich noch lange nicht ;) Ich habe mir nur mal die XPath-Hilfe angesehen.