0

所以,我正在 vb.net 上开发一个项目来管理 rss 提要,如果他们有附加文件,它会自动将文件下载到文件夹中。我对 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% 的提要,唯一的问题是那些在附件标签中包含下载 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,但是到目前为止,我尝试了一些我在网上找到的解决方案,甚至更改了获取文件的方法,但主要是因为存在问题,这种方法对我的项目来说是最好的。

有任何想法吗?

4

1 回答 1

0

我认为问题在于您的 xpath 表达式是错误的。在 Xml 中,我看到一个名为的元素,而不是一个名为 .

你可以试试这个:

Dim nodesLink As XPathNodeIterator = navigator.Select("/rss/channel/item/enclosure")
nodesLink.Attributes("url")
于 2013-05-17T14:23:27.273 回答