Good point, Richard.

I've beefed the function up a little with some more error checking.

This demo of the function includes a simple RSS feed reader.

Code:

; ********** SimpleRSS.kix **********

Break On
$nul=SetOption("WrapAtEOL","on")
$nul=SetOption("NoVarsInStrings","on")
$nul=SetOption("Explicit","on")

Dim $sRSSFeed,$xml,$xmlNode,$y,$IE

$sRSSFeed = "http://www.nytimes.com/services/xml/rss/userland/Books.xml"

$xml = fnLoadXML($sRSSFeed,2)
If @ERROR @SERROR ? EndIf

For Each $xmlNode In $xml.getElementsByTagName("item")
Color n/w "Title:" Color w " " + $xmlNode.ChildNodes(0).Text ??
Color n/w "Description:" Color w " " + $xmlNode.ChildNodes(2).Text ??
Color n/w "View the article? (Y/N)" Color w
Get $y ??
If $y = "y"
$IE = CreateObject("InternetExplorer.Application")
$IE.Visible=1
$IE.Navigate($xmlNode.ChildNodes(1).Text)
EndIf
"**************************************"+
"**************************************" ??
Next
$IE = 0

Function fnLoadXML($sXML,$sFrom)
; $sFrom: 1 = File; 2 = HTTP; 3 = String
Dim $xmlDoc,$xmlHttp,$nul

$xmlDoc = CreateObject("Microsoft.XMLDOM")
If @ERROR Exit 10 EndIf
$xmlDoc.async = 0

Select
Case $sFrom = 1
If Not Exist($sXML) Exit 2 EndIf
$nul = $xmlDoc.load($sXML)
Case $sFrom = 2
$xmlHttp = CreateObject("Microsoft.XMLHTTP")
If @ERROR Exit 10 EndIf
$xmlHttp.open("GET",$sXML,0)
$xmlHttp.send()
If $xmlHttp.status = 200
$nul = $xmlDoc.loadXML($xmlHttp.responseText)
Else
$fnLoadXML = $xmlHttp.statusText
Exit 2
EndIf
Case $sFrom = 3
$nul = $xmlDoc.loadXML($sXML)
Case 1 Exit 87
EndSelect

If $xmlDoc.parseError.errorCode
$fnLoadXML = $xmlDoc.parseError.reason + $xmlDoc.parseError.line
Exit $xmlDoc.parseError.errorCode
EndIf

$fnLoadXML = $xmlDoc

EndFunction