Как я могу импортировать необработанный RSS-канал в C #? - PullRequest
2 голосов
/ 16 сентября 2008

Кто-нибудь знает простой способ импорта необработанного XML-канала RSS в C #? Ищу простой способ получить XML в виде строки, чтобы я мог проанализировать его с помощью регулярных выражений.

Спасибо, * 1003 Грег *

Ответы [ 8 ]

13 голосов
/ 16 сентября 2008

Этого должно быть достаточно, чтобы вы начали ...

using System.Net 

WebClient wc = new WebClient();

Stream st = wc.OpenRead(“http://example.com/feed.rss”);

using (StreamReader sr = new StreamReader(st)) {
   string rss = sr.ReadToEnd();
}
11 голосов
/ 16 сентября 2008

Если вы работаете в .NET 3.5, вы получили встроенную поддержку каналов синдикации (RSS и ATOM). Ознакомьтесь с этой MSDN Magazine Article для хорошего введения .

Если вы действительно хотите проанализировать строку с помощью регулярного выражения (а синтаксический анализ XML не предназначен для регулярного выражения), самый простой способ получить содержимое - использовать класс WebClient. использовать. Просто дайте ему URL вашего канала. Проверьте эту ссылку , чтобы узнать, как ее использовать .

2 голосов
/ 17 сентября 2008

Чего вы пытаетесь достичь?

Я нашел классы System.ServiceModel.Syndication очень полезными при работе с фидами.

2 голосов
/ 16 сентября 2008

Я бы загрузил фид в XmlDocument и использовал бы XPATH вместо регулярных выражений, вот так:

XmlDocument doc = new XmlDocument();

HttpWebRequest request = WebRequest.Create(feedUrl) as HttpWebRequest;

using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
    StreamReader reader = new StreamReader(response.GetResponseStream());
    doc.Load(reader);

    <parse with XPATH>
}
0 голосов
/ 26 сентября 2008

RSS - это просто XML и может быть легко передано на диск. Следуйте примеру Даррела - это все, что вам нужно.

0 голосов
/ 16 сентября 2008

Лучший способ получить RSS-канал в качестве запрошенной строки - использовать класс System.Net.HttpWebRequest. После настройки параметров HttpWebRequest (URL-адреса и т. Д.) Вызовите метод HttpWebRequest.GetResponse (). Оттуда вы можете получить поток с помощью WebResponse.GetResponseStream (). Затем вы можете обернуть этот поток в System.IO.StreamReader и вызвать StreamReader.ReadToEnd (). Вуаля.

0 голосов
/ 16 сентября 2008

Возможно, вы захотите взглянуть на это: http://www.codeproject.com/KB/cs/rssframework.aspx

0 голосов
/ 16 сентября 2008

XmlDocument (находится в System.Xml, вам нужно будет добавить ссылку на dll, если она не добавлена ​​для вас) - это то, что вы использовали бы для получения xml в C #. В этот момент просто вызовите свойство InnerXml, которое дает внутренний Xml в строковом формате, а затем выполните синтаксический анализ с регулярным выражением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...