XML und GOOGLE Wetter

  • Hi,

    ich habe Langeweile und wollte mir mal eine kleine App schreiben, welches mir das Wetter anzeigt.

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

    #include "_XMLDOMWrapper.au3"

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

    Global $PLZ = "76646"
    $Query = "http://www.google.com/ig/api?weather=" & $PLZ & "&hl=de"

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

    Local $hDownload = InetGet($Query, @ScriptDir & "\wetter_" & $PLZ & "_input.xml", 1, 1)
    Do
    Sleep(250)
    $nBytes = InetGetInfo($hDownload, 0)
    Until InetGetInfo($hDownload, 2) ; Check if the download is complete.

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

    InetClose($hDownload) ; Close the handle to release resourcs.

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

    $XMLopen = _XMLFileOpen(@ScriptDir & "\wetter_" & $PLZ & "_input.xml")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $XMLopen = ' & $XMLopen & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console

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

    $Stand_von = _XMLGetValue("/xml_api_reply/weather/forecast_information/current_date_time")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : Stand_von = ' & $Stand_von & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console

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

    FileDelete(@ScriptDir & "\wetter_" & $PLZ & "_input.xml")

    [/autoit]

    Irgendwie bekomme ich keine Daten zurückgeliefert. Hier die Ausgabe

    Spoiler anzeigen


    >Running:(3.3.6.1):C:\Programme\AutoIt3\autoit3.exe "I:\Eigene Dateien 14.7.2011\Wetter in Bruchsal.au3"
    @@ Debug(17) : $XMLopen = -1
    >Error code: 1
    @@ Debug(20) : Stand_von = -1
    >Error code: 1
    +>15:06:01 AutoIT3.exe ended.rc:0
    >Exit code: 0 Time: 7.609

    Kann mich bitte jemand mal von der Leitung holen, auf der ich gerade stehe ^^

    LG
    fschaef

    Einmal editiert, zuletzt von fschaef (9. Oktober 2011 um 15:42)

  • Ich kann den XMLDomWrapper nicht leiden, daher hier mal die Lösung mit direkt angesprochenem Objekt:

    [autoit]

    Global Const $oCOMError = ObjEvent("AutoIt.Error", "_COMError")
    Func _COMError()
    ConsoleWrite("!COM-Error: " & Hex($oCOMError.number, 8) & " (" & $oCOMError.number & ")" & @CRLF)
    EndFunc

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

    Global $PLZ = "76646"
    $Query = "http://www.google.com/ig/api?weather=" & $PLZ & "&hl=de"

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

    Local $sData = BinaryToString(InetRead($Query, 1))

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

    $oXML = ObjCreate("MsXml2.DomDocument")
    $oXML.loadXML($sData)
    $oXML.SetProperty("SelectionLanguage", "XPath")

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

    $Stand_von = $oXML.selectSingleNode("/xml_api_reply/weather/forecast_information/current_date_time")
    If IsObj($Stand_von) Then $Stand_von = $Stand_von.getAttribute('data')
    MsgBox(0, '', $Stand_von)

    [/autoit]
  • Ich kann den XMLDomWrapper nicht leiden, daher hier mal die Lösung mit direkt angesprochenem Objekt:

    So hat jeder seine Vorlieben. Funktionert jedoch einwandfrei. Vielen Dank.

    LG
    fschaef