检索RSS Feed时出错(vb.net项目)

时间:2013-05-17 12:50:35

标签: vb.net rss feed

所以,我正在vb.net上开发一个项目来管理rss feed,如果他们有一个文件,它会自动将文件下载到一个文件夹。我对vb.net有所了解,但在Xml中,我已经迈出了第一步。

我已经设法使用我在网上找到的代码正确下载链接中的内容:

Dim webReq As HttpWebRequest = DirectCast(WebRequest.Create(tsCboFeeds.Text), HttpWebRequest)

webReq.AutomaticDecompression = DecompressionMethods.GZip

Dim resp As HttpWebResponse = DirectCast(webReq.GetResponse(), HttpWebResponse)
Dim xml As String
Using sr As New StreamReader(resp.GetResponseStream())
   xml = sr.ReadToEnd()
End Using

doc.LoadXml(xml)

它适用于我找到的99%的Feed,唯一的问题是在机箱标签中有下载URL的那个,就像这个例子(链接是帖子的url,而不是文件的URL) :

<channel>
<title>...</title>
<link>...</link>
<description>...</description>

<item>
    <title>...</title>
    <description>...</description>
    <category>...</category>
    <author>...</author> 
    <link...</link>
    <pubDate>...</pubDate>
    <enclosure url="http:..." />
</item>

当我尝试使用

Dim nodesLink As XPathNodeIterator = navigator.Select("/rss/channel/item/enclosure_url")

我没有得到标签内的信息,它给了我整个xml文档。

正如我所提到的,我不太了解Xml,但到现在为止我尝试了一些我在网上找到的解决方案,甚至改变了获取文件的方法,但主要是因为考虑到问题,这种方法对我来说是最好的项目

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为问题在于你的xpath表达式是错误的。在Xml中我看到一个被调用的元素而不是一个被调用的元素。

你可以试试这个:

Dim nodesLink As XPathNodeIterator = navigator.Select("/rss/channel/item/enclosure")
nodesLink.Attributes("url")