2013-05-17 34 views
0

所以,我在vb.net上開發一個項目來管理RSS提要,如果他們有一個文件附加它會自動下載文件到一個文件夾。我知道關於vb.net的一些東西,但在Xml中,我正在開始我的第一步。檢索RSS源錯誤(vb.net項目)

我已經成功地正常下載的鏈接內容與此代碼我在網上找到:

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):

<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

我認爲問題在於你的xpath表達式是錯誤的。在Xml中,我看到一個叫做的元素,而不是一個叫做的元素。

你可以試試這個:

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

喜。感謝您的回覆 我試過編寫nodesLink.attributes,但我的項目無法識別該屬性。我已經有一個進口bucnh,但也許我錯過了一個。那些我已經進口是: 進口System.Collections.Specialized System.Collections中進口進口 System.Linq的 進口的System.Web 進口的System.Xml 進口系統 進口System.Net 進口的System.Xml .XPath Imports System.IO Imports System.Text – user2393824

+0

我混淆了XPathNodeIterator和XmlDocument,對不起。我想你應該使用這段代碼(沒有測試它): 'Dim xp As XPathNavigator = nodesLink.Current' 'xp.GetAttribute(「url」,Nothing)' –

+0

再次感謝您的幫助。雖然沒有幫助:/ 我猜rss太破碎了,無法讀取。不管怎麼說,多謝拉 – user2393824