Hello there im trying to figure out how i can parse RSS feeds with VBS and display the contents into cmd. I got some code i have found around the net. this is what i got so far.
Batchfile:
:news
start scripts\xml\getxml.exe -N --directory-prefix=%temp% http://feeds.bbci.co.uk/news/rss.xml
:newscheck
if NOT EXIST %temp%\rss.xml (
ping 123.45.67.89 -n 1 -w 500 > nul.
goto newscheck
)
start scripts\news\parsebbcnews.vbs
ping 123.45.67.89 -n 1 -w 500 > nul.
:newsxmlparsecheck
if NOT EXIST %temp%\bbcnews.txt (
ping 123.45.67.89 -n 1 -w 500 > nul.
goto newsxmlparsecheck
)
set /p headline= <%temp%\bbcnews.txt
echo %headline%
%speech% "%headline%"
del %temp%\rss.xml
del %temp%\bbcnews.txt
goto start
then this starts the VBS:
Dim xmlDoc, objNodeList, plot
Set wshShell = CreateObject( "WScript.Shell" )
tfolder = wshShell.ExpandEnvironmentStrings("%TEMP%")
Set xmlDoc = CreateObject("Msxml2.DOMDocument")
xmlDoc.load(tfolder & "\rss.xml")
Set objNodeList = xmlDoc.getElementsByTagName("channel/item/description") 'Node to search for
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Write all found results into forecast.txt
Const ForWriting = 2
Set objTextFile = objFSO.OpenTextFile _
(tfolder & "\bbcnews.txt", ForWriting, True)
If objNodeList.length > 0 then
For each x in objNodeList
plot=x.Text
objTextFile.WriteLine(plot)
Next 'just remove this?
objTextFile.Close
End If
'Extract todays data (first line) from 'forecast.txt' and write each data type to seperate line in today.txt
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
(tfolder & "\bbcnews.txt", ForReading)
strNextLine = objTextFile.Readline
'currentsplit = Split(strNextLine , ", ")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(tfolder & "\headline.txt", ForWriting, True)
objTextFile.WriteLine(strNextLine)
This gets 1 news rss feed from bbc. I want also to get more than one feed displayed.
I did not create this code so i don’t know how i can get the script and the similar code, to get rss from different sites. So basically what i want is to know how i can do this with a vb-script and display it in cmd.
If you’re only interested in the top headline, you should use “channel/item/title” instead of “channel/item/description”. With many feeds the description is enriched with HTML, so printing the first line of that probably won’t do you any good.
You could simplify both scripts to something like this:
You’d have to call the script with
cscript.exe, though, to be able to print commandline output:Edit: For displaying more headlines from a feed you’d add a loop to
PrintTopHeadline(), something like this:HTML tags can be removed by something like this:
However, you’d need additional code to convert HTML entities back to plain text, e.g.: