【问题标题】:C# - XmlNodeList - Getting inner xml/text between description tags without HTMLC# - XmlNodeList - 在没有 HTML 的描述标签之间获取内部 xml/文本
【发布时间】:2011-01-10 19:24:18
【问题描述】:

现在我有一个列表框,显示 RSS 文章标题/RSS 提要的 URL。标题和 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 

}

【问题讨论】:

    标签: c# xml rss


    【解决方案1】:

    您可以使用 Using C# regular expressions to remove HTML tags 的方法剥离 html

    【讨论】:

    • 工作就像一个魅力,甚至没有想过这样做。谢谢!
    【解决方案2】:

    您可以使用InnerText 代替 InnerHtml。这只会获取没有任何标记的子节点的内容。

    【讨论】:

    • 是的,我现在有 InnerText,innerXml 似乎做同样的事情。
    • 它不能与 InnerText 一起使用吗?可能description里面的内容是html编码的?
    猜你喜欢
    • 2014-09-28
    • 1970-01-01
    • 2016-05-13
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    相关资源
    最近更新 更多