Я пытаюсь разобрать канал 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}feed
{http://www.w3.org/2005/Atom}author
{http://www.w3.org/2005/Atom}title
{http://www.w3.org/2005/Atom}subtitle
{http://www.w3.org/2005/Atom}link
{http://www.w3.org/2005/Atom}updated
{http://www.w3.org/2005/Atom}id
{http://www.w3.org/2005/Atom}entry
{http://www.w3.org/2005/Atom}entry
{http://www.w3.org/2005/Atom}entry
...
Любая помощь в том, что я должен делать здесь?
Спасибо!