Moin zusammen,
Und auch schon das nächste Problemchen.
Ich les den Spiegel RSS-Feed mit Hilfe der _XMLDomWrapper.au3 aus. Funktioniert auch soweit ganz gut. Habe nur das Problem, dass wenn mal ein Bereich fehlt, mir die Zuordnung zu den Titeln flöten geht.
Bsp.:
Spoiler anzeigen
Func _GetFeedData("http://www.spiegel.de/schlagzeilen/index.rss")
Local $strXML = _INetGetSource($rss_source)
Local $data_array[100][4]
_XMLLoadXML($strXML, "")
[/autoit] [autoit][/autoit] [autoit]Local $title_node = "//rss/channel/item/title";
Local $title_array = _XMLGetValue($title_node)
Local $link_node = "//rss/channel/item/link";
Local $link_array = _XMLGetValue($link_node)
Local $description_node = "//rss/channel/item/description";
Local $description_array = _XMLGetValue($description_node)
Local $date_node = "//rss/channel/item/pubDate";
Local $date_array = _XMLGetValue($date_node)
For $i = 0 To UBound($title_array) - 1
$data_array[$i][0] = _UTF8ToAnsi($title_array[$i])
$data_array[$i][1] = $date_array[$i]
$data_array[$i][2] = $link_array[$i]
$data_array[$i][3] = _UTF8ToAnsi($description_array[$i])
Next
Return $data_array
EndFunc ;==>_GetFeedData
Func _UTF8ToAnsi($sUTF8)
Local $iLen = StringLen($sUTF8)
Local $stBuf = DllStructCreate("byte[" & $iLen * 2 & "];byte[2]")
Local $aRet = DllCall("Kernel32.dll", "int", "MultiByteToWideChar", _
"int", 65001, "int", 0, _
"str", $sUTF8, "int", -1, _
"ptr", DllStructGetPtr($stBuf), "int", $iLen * 2 + 2)
Local $stOut = DllStructCreate("char[" & $iLen & "];char")
[/autoit] [autoit][/autoit] [autoit]$aRet = DllCall("kernel32.dll", "int", "WideCharToMultiByte", _
"int", 0, "int", 0, _
"ptr", DllStructGetPtr($stBuf), "int", -1, _
"ptr", DllStructGetPtr($stOut), "int", $iLen + 1, _
"int", 0, "int", 0)
Return DllStructGetData($stOut, 1)
EndFunc ;==>_UTF8ToAnsi
Aktueller Fall ist, dass nicht überall der Bereich description vorhanden ist und es dadurch zu Array-Fehlern kommt. Die würde man ja noch in den Griff bekommen, aber wie bekomme ich es raus, wo die description fehlt, so daß die Zuordnung erhalten bleibt ??
Ich steh da im Mom vol aufm Schlauch.
Lg
MrB