Я пытаюсь разобрать RSS-канал из http://b.fanfiction.net/atom/l/224/3/0/1/1/50/0/0/0/0, но поиск по элементу невозможен имя почему-то. Я следую инструкциям с этой страницы, но его пример, похоже, не работает на указанном выше сайте фанфиков.
Вот код, который я использую:
private void getData_Click(object sender, RoutedEventArgs e)
{
String rss = "http://b.fanfiction.net/atom/l/224/3/0/1/1/50/0/0/0/0";
HttpWebRequest request = HttpWebRequest.CreateHttp(rss);
request.BeginGetResponse(
asyncCallback =>
{
string data = null;
using (WebResponse response = request.EndGetResponse(asyncCallback))
{
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
data = reader.ReadToEnd();
}
}
Deployment.Current.Dispatcher.BeginInvoke(() => HttpsCompleted(data));
}
, null);
}
private void HttpsCompleted(string feedString)
{
// build XML DOM from feed string
XDocument doc = XDocument.Parse(feedString);
// show title of feed in TextBlock
XElement feed = doc.Element("feed");
XElement title = feed.Element("title");
String txt_title = title.Value;
txtBlk_FeedDescription.Text = txt_title;
// add each feed item to a ListBox
foreach (var item in doc.Descendants("entry"))
{
listBox1.Items.Add(item.Element("title").Value);
}
}
Я попытался просто перечислить все элементы и подэлементы документа, запустив:
foreach (XElement element in doc.Elements())
{
txtBlk_FeedDescription.Text += element.Name.ToString() + "\n";
foreach (XElement subelement in element.Elements())
{
txtBlk_FeedDescription.Text += subelement.Name.ToString() + "\n";
}
}
В результате получился следующий список:
Канал {http://www.w3.org/2005/Atom}
{http://www.w3.org/2005/Atom} автор
{http://www.w3.org/2005/Atom} title
субтитры {http://www.w3.org/2005/Atom}
Ссылка {http://www.w3.org/2005/Atom}
{http://www.w3.org/2005/Atom} обновлено
{http://www.w3.org/2005/Atom} id
Запись {http://www.w3.org/2005/Atom}
Запись {http://www.w3.org/2005/Atom}
Запись {http://www.w3.org/2005/Atom}
...
Любая помощь в том, что я должен здесь делать?
Спасибо!