所以,我正在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,但到现在为止我尝试了一些我在网上找到的解决方案,甚至改变了获取文件的方法,但主要是因为考虑到问题,这种方法对我来说是最好的项目
有什么想法吗?
答案 0 :(得分:0)
我认为问题在于你的xpath表达式是错误的。在Xml中我看到一个被调用的元素而不是一个被调用的元素。
你可以试试这个:
Dim nodesLink As XPathNodeIterator = navigator.Select("/rss/channel/item/enclosure")
nodesLink.Attributes("url")