Daten aus xml auslesen

  • Hallo!
    Und zwar möchte ich Daten aus einer *xml auslesen und dann in einen Text oder einer *ini zwischenspeichern um eine neue Anfrage bei einer 2ten xml zu starten.
    Die xml ist hier zu finden

    http://ofdbgw.w-root.de/search/hitch

    "Hitch" ist hierbei nur ein Beispiel.Die ganze Seite ist zu sehen unter http://ofdbgw.org/

    Nachdem die obengenannte Seite die ID für den oder die Filme ausspuckt soll anschließend folgende Seite aufgerufen werden,um die vollen Daten zu erhalten:

    http://ofdbgw.w-root.de/movie/69878

    Jedoch scheitere ich schon am 1 Punkt.Habe einmal folgendes probiert

    Spoiler anzeigen
    [autoit]

    #Include <String.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $file = FileOpen("hitch.xml", 0)

    [/autoit] [autoit][/autoit] [autoit]

    ; Prüfen, ob Datei zum Lesen geöffnet wurde
    If $file = -1 Then
    MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
    Exit
    EndIf
    $iniShowSerie = _StringBetween('hitch.xml', '<id>', '</id>')
    If Not FileExists("Settings.ini") Then
    IniWrite("Settings.ini", "Show", "Serie", $iniShowSerie)
    EndIf

    [/autoit]

    Jedoch steht in der ini nur [Show] Serie=

    Mein Gedankengang:
    - hitch.xml wird geöffnet
    - geprüft ob offen
    - inder hitch.xml nach Daten zwischen <id> und </id> gesucht und als Parameter $iniShowSerie hinterlegt
    - Paramter $iniShowSerie wird in die ini geschrieben

    Zur Info: Autoit ist Neuland für mich.

    Ciao

  • hier mal ein erster "Schubs":

    [autoit]

    #include <IE.au3>
    #include <String.au3>
    #include <Array.au3>
    $oIE = _IECreate("http://ofdbgw.w-root.de/search/hitch",0,1)
    $sHTML = _IEBodyReadText ($oIE)
    Local $aArray1 = _StringBetween($sHTML, '<id>', '</id>')
    _ArrayDisplay($aArray1, 'Default Search')

    [/autoit]

    Edit:
    hab's noch etwas erweitert.
    Ist natürlich nur "dirty" hingeschmissen...

    [autoit]


    #include <IE.au3>
    #include <String.au3>
    #include <Array.au3>
    $oIE = _IECreate("http://ofdbgw.w-root.de/search/hitch",0,1);Setze statt der 1 eine 0 dann wird das Fenster nicht angezeigt
    $sHTML = _IEBodyReadText ($oIE)
    Local $aArray1 = _StringBetween($sHTML, '<id>', '</id>')
    _ArrayDisplay($aArray1, 'Default Search');ist nur zur Kontrolle und zum Testen
    _IEQuit($oIE)
    Dim $aArray2[UBound($aArray1)]
    For $i = 0 To UBound($aArray1)-1
    $oIE = _IECreate("http://ofdbgw.w-root.de/movie/"&$aArray1[$i],0,1);Setze statt der 1 eine 0 dann wird das Fenster nicht angezeigt
    $aArray2[$i] = _IEBodyReadText ($oIE)
    _IEQuit($oIE)
    Next
    _ArrayDisplay($aArray2, 'Ergebnis Film '&$i)
    MsgBox(0, '', $aArray2[1]); als Beispiel ...

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...

    Einmal editiert, zuletzt von Schnuffel (14. Februar 2010 um 00:23)

  • siehe mein erster Thread...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...

  • Das ganze geht auch mit RegExp.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <Inet.au3>
    $sRead = _INetGetSource("http://ofdbgw.w-root.de/search/hitch")
    $aTmp = StringRegExp($sRead, "<id>(.+?)</id>\s<.+?>(.+)<.+?>\s<.+>\s<.+?>(.+)<.+?>", 3)
    For $i = 0 To UBound($aTmp) - 1 Step 3
    MsgBox(0, "", _
    "ID: " & $aTmp[$i] & @CRLF & _
    "Name: " & $aTmp[$i + 1] & @CRLF & _
    "Jahr: " & $aTmp[$i + 2] _
    )
    Next
    _ArrayDisplay($aTmp)

    [/autoit]
    Hier nochmal anders
    [autoit]

    #include <Array.au3>
    #include <Inet.au3>
    $sRead = _INetGetSource("http://ofdbgw.w-root.de/search/hitch")
    $aTmp = StringRegExp($sRead, "<id>(.+?)</id>", 3)
    For $i = 0 To UBound($aTmp) - 1
    $sInfo = _INetGetSource("http://ofdbgw.w-root.de/movie/"&$aTmp[$i])
    $aResult = StringRegExp($sInfo,"<titel>(.+)</titel>\s<.+?>(.+?)<[\w\W]+?<platz>(.+)<[\w\W]+?<genre>\s<.+?>(.+)<",3)
    _ArrayDisplay($aResult)
    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Hallo!
    Danke für eure raschen ANtworten.Für einen Autoit Neuling ist das zumindest einmal einen Ansatz,wenn man überhaupt nicht weiß wie und wo man Anfangen soll.Lasse einmal das Thema noch geöffnet,falls ich noch etwas zu diesem Thema wissen möchte.

    Ciao