【问题标题】:Remove HTML from string从字符串中删除 HTML
【发布时间】:2012-04-01 19:51:38
【问题描述】:

我正在尝试从我的 RSS 提要中清除 HTML 编码。我不知道如何设置以下内容以取出 HTML 编码。

var rssFeed = XElement.Parse(e.Result);

var currentFeed = this.DataContext as app.ViewModels.FeedViewModel;
var items = from item in rssFeed.Descendants("item")                            
            select new ATP_Tennis_App.ViewModels.FeedItemViewModel()
            {

                Title = item.Element("title").Value,
                DatePublished = DateTime.Parse(item.Element("pubDate").Value),
                Url = item.Element("link").Value,
                Description = item.Element("description").Value
            };

foreach (var item in items)
    currentFeed.Items.Add(item);

【问题讨论】:

标签: c# windows-phone-7


【解决方案1】:

只需使用以下代码:

var withHtml = "<p>hello <b>there</b></p>";
var withoutHtml = Regex.Replace(withHtml, "<.+?>", string.Empty);

这将清理 html,只留下文本,所以“你好”

所以,你可以复制并使用这个函数:

string RemoveHtmlTags(string html) {
    return Regex.Replace(html, "<.+?>", string.Empty);
}

您的代码将如下所示:

var rssFeed = XElement.Parse(e.Result);
var currentFeed = this.DataContext as app.ViewModels.FeedViewModel;
var items = from item in rssFeed.Descendants("item")                            
            select new ATP_Tennis_App.ViewModels.FeedItemViewModel()
            {

                Title = RemoveHtmlTags(item.Element("title").Value),
                DatePublished = DateTime.Parse(item.Element("pubDate").Value),
                Url = item.Element("link").Value,
                Description = RemoveHtml(item.Element("description").Value)
            };

【讨论】:

  • 你能告诉我在哪里可以把它放到我上面的代码中吗?
  • 我已使用您的原始代码使用代码示例更新了我的回复
  • 这不会删除诸如&amp;quot; 之类的 HTML 实体。
【解决方案2】:

你可以使用这个代码示例,它在我这边运行良好

public static string RemoveHTMLTags(string value)
    {
        string step1 = Regex.Replace(value, "<[^>]*>", " ");
        string step2 = HttpUtility.HtmlDecode(step1);
        return step2;
    }

希望这段代码对你有所帮助。

【讨论】:

    【解决方案3】:

    使用以下类实用程序:

    HttpUtility.HtmlDecode(string);
    

    请不要再参考这个答案。

    【讨论】:

    • @MichaelPeberdy:假设 Description 包含 hTMNL 标签,那么您可以使用以下代码删除 HTML 标签 HttpUtility.HtmlDecode(Description );
    • hTMNL 没有任何意义,HttpUtility.HTMLDecode(string) 的目的是将 HtmlEntities 转换回字符。你想要代表点数?
    • HTMLDecode 不会删除任何标签。这不是它的用途。
    猜你喜欢
    • 2014-01-10
    • 2022-07-01
    • 2010-09-19
    • 2017-09-06
    • 2021-11-01
    • 2019-04-19
    相关资源
    最近更新 更多