从文本文件中删除<div>?</div>

时间:2009-03-30 10:19:01

标签: c# xml html

我在C#.net上创建了一个小程序,它并没有真正起到很大的作用,它告诉你你的DOOM基于今天的新闻的机会大声笑。它需要从BBC网站上加载RSS,然后查找关键词,这些关键词可以减少DOOM的百分比几率。

疯狂的小项目,也许有一天这些课程将会更方便地用于更重要的事情。

我以xml格式接收RSS,但它包含很多div标签和格式化字符,我真的不想在关键字数据库中,

删除这些不需要的字符和div的最佳方法是什么?

谢谢,

4 个答案:

答案 0 :(得分:4)

恕我直言,最简单的方法是使用正则表达式。类似的东西:

string txt = Regex.Replace(htmlString, @"<(.|\n)*?>", string.Empty);

根据您要删除的标记和字符,您当然会修改正则表达式。如果您对'strip html C#'进行网络搜索,您会发现有很多关于此方法和其他方法的资料。

问题Render or convert Html to ‘formatted’ Text (.NET)也可能对您有所帮助。

答案 1 :(得分:4)

如果您还要删除包含内容的DIV标记:

string start = "<div>";
string end = "</div>";
string txt = Regex.Replace(htmlString, Regex.Escape(start) + "(?<data>[^" + Regex.Escape(end) + "]*)" + Regex.Escape(end), string.Empty);

输入:<xml><div>junk</div>XXX<div>junk2</div></xml>

输出:<xml>XXX</xml>

答案 2 :(得分:2)

从给定字符串中删除HTML标记是一种常见的要求,您可以在线找到许多为您完成此操作的资源。

然而,接受的方法是使用基于正则表达式的搜索和替换。 This article提供了一个很好的样本和基准。值得一提的另一点是,您需要对您看到的各种不需要的字符进行单独的基于正则表达式的查找。 (也许向我们展示您收到的HTML示例会有所帮助)

请注意,您的要求可能会因您要删除的标记而异。在您的问题中,您只提到DIV标签。如果这是您需要替换的唯一标记,那么简单的字符串搜索和替换就足够了。

答案 3 :(得分:1)

这样的正则表达式:

<([A-Z][A-Z0-9]*)\b[^>]*>(.*?)</\1> 

会突出显示所有HTML标记。

使用此功能将其从数据中删除。