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 であり、ファイルへの 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 に答える