C # - XmlNodeList - Получение внутреннего XML / текста между тегами описания без HTML - PullRequest
0 голосов
/ 10 января 2011

Прямо сейчас у меня есть список, который показывает заголовки статей RSS / URL-адреса RSS-канала. Извлечение заголовка и URL не было проблемой, но теперь я пытаюсь, чтобы описание отображалось в поле расширенного текста, когда заголовок статьи выбирается в списке. Я могу успешно отобразить описание в текстовом поле, но за ним всегда следует куча лишних html. Пример:

There's a silly rumor exploding on the Internet this weekend, alleging that Facebook is shutting down on March 15 because CEO Mark Zuckerberg "wants his old life back," and desires to "put an end to all the madness."<div class="feedflare">
<a href="http://rss.cnn.com/~ff/rss/cnn_topstories?a=at7OdUE16Y0:jsXll_RkIzI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/rss/cnn_topstories?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://rss.cnn.com/~ff/rss/cnn_topstories?a=at7OdUE16Y0:jsXll_RkIzI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/rss/cnn_topstories?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://rss.cnn.com/~ff/rss/cnn_topstories?a=at7OdUE16Y0:jsXll_RkIzI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/rss/cnn_topstories?i=at7OdUE16Y0:jsXll_RkIzI:V_sGLiPBpWU" border="0"></img></a> <a href="http://rss.cnn.com/~ff/rss/cnn_topstories?a=at7OdUE16Y0:jsXll_RkIzI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/rss/cnn_topstories?d=qj6IDK7rITs" border="0"></img></a> <a href="http://rss.cnn.com/~ff/rss/cnn_topstories?a=at7OdUE16Y0:jsXll_RkIzI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/rss/cnn_topstories?i=at7OdUE16Y0:jsXll_RkIzI:gIN9vFwOqvQ" border="0"></img></a>

Код:

private void button1_Click(object sender, EventArgs e)
{

    {

        XmlTextReader rssReader = new XmlTextReader(txtUrl.Text);
        XmlDocument rssDoc = new XmlDocument();
        rssDoc.Load(rssReader);
        XmlNodeList titleList = rssDoc.GetElementsByTagName("title");
        XmlNodeList urlList = rssDoc.GetElementsByTagName("link");
        descList = rssDoc.GetElementsByTagName("description");


        for (int i = 0; i < titleList.Count; i++)
        {
            lvi = rowNews.Items.Add(titleList[i].InnerXml);
            lvi.SubItems.Add(urlList[i].InnerXml);
        }

    }

}

private void rowNews_SelectedIndexChanged(object sender, EventArgs e)
{
    if (rowNews.SelectedIndices.Count <= 0)
    {
        return;
    }
    int intselectedindex = rowNews.SelectedIndices[0]; // Get index of article title

    txtDesc.Text=(descList[intselectedindex].InnerText); 
    // Get description array index that matched list index 

}

Ответы [ 2 ]

2 голосов
/ 10 января 2011

Вы можете удалить html, используя подход из Использование регулярных выражений C # для удаления тегов HTML

0 голосов
/ 10 января 2011

Вы можете использовать InnerText вместо InnerHtml. Это позволит получить содержимое только ваших дочерних узлов без разметки.

...