C# 移除<;部门>';是从文本文件吗?

C# 移除<;部门>';是从文本文件吗?,c#,xml,html,C#,Xml,Html,我在C#net上做了一个小程序,它实际上没有什么用处,它根据今天的新闻lol告诉你你的厄运概率。它从BBC网站上下载一个RSS,然后寻找关键字,要么增加要么减少厄运概率 这是一个疯狂的小项目,也许有一天这些课程会派上用场,用于更重要的事情 我收到了一个xml格式的RSS,但是它包含了很多div标签和格式化字符,我真的不希望这些字符出现在关键字数据库中 删除这些不需要的字符和div的最佳方法是什么 谢谢 最简单的方法是使用正则表达式。比如: string txt = Regex.Replace(h

我在C#net上做了一个小程序,它实际上没有什么用处,它根据今天的新闻lol告诉你你的厄运概率。它从BBC网站上下载一个RSS,然后寻找关键字,要么增加要么减少厄运概率

这是一个疯狂的小项目,也许有一天这些课程会派上用场,用于更重要的事情

我收到了一个xml格式的RSS,但是它包含了很多div标签和格式化字符,我真的不希望这些字符出现在关键字数据库中

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

谢谢


最简单的方法是使用正则表达式。比如:

string txt = Regex.Replace(htmlString, @"<(.|\n)*?>", string.Empty);
string txt=Regex.Replace(htmlString,@“”,string.Empty);
当然,根据要删除的标记和字符,您将修改正则表达式。如果你在网上搜索,你会发现很多关于这个和其他方法的资料


所以,这个问题也可能对您有所帮助。

从给定字符串中剥离HTML标记是一个常见的要求,您可能会在网上找到许多为您这样做的资源

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


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

正则表达式如下:

<([A-Z][A-Z0-9]*)\b[^>]*>(.*?)</\1> 
]*>(**?)
将突出显示所有HTML标记


使用此选项可将其从数据中删除。

如果要同时删除包含内容的DIV标记,请执行以下操作:

string start = "<div>";
string end = "</div>";
string txt = Regex.Replace(htmlString, Regex.Escape(start) + "(?<data>[^" + Regex.Escape(end) + "]*)" + Regex.Escape(end), string.Empty);
string start=”“;
字符串结束=”;
string txt=Regex.Replace(htmlString,Regex.Escape(start)+“(?[^”+Regex.Escape(end)+“]*)”+Regex.Escape(end),string.Empty);
输入:
junkXXXjunk2


输出:
XXX

这是一个有效的答案,但它基本上删除了所有聊天参与者,然后在他们的位置放置一个空格,该空格一旦拆分为一个数组,就会在数据库中留下大量空白。我该如何解决这个问题?还有什么方法可以添加一个参数来删除像/n和/t这样的字符吗?不知道为什么会看到额外的空格-string。Empty会将标记替换为“”,而不是“”。可能您没有去除RSS中多余的空白(制表符“\t”、换行符“\n”等)-您可能希望进一步替换这些空白,或者添加它们。听起来不错,我们从哪里可以得到它:在编写正则表达式时,是否有一定的字符顺序?上面的答案是一个更轻的表达?或者它不会删除所有字符吗?老实说,我在这里提到的正则表达式也会删除标记中的所有内容。这可能不是你想要的。哦,好吧,我明白了,你定义了开始和结束标记,并基本上删除了所有标记!这正是我需要的,谢谢!