当前位置:  开发笔记 > 编程语言 > 正文

你如何将Html转换为纯文本?

如何解决《你如何将Html转换为纯文本?》经验,为你挑选了7个好方法。

我有一个存储在表格中的Html片段.不是整页,没有标签等,只是基本的格式.

我希望能够在给定页面上显示Html仅作为文本,没有格式化(实际上只是前30到50个字符,但这很容易).

如何将该Html中的"文本"作为直文放入字符串中?

所以这段代码.

Hello World.

Is there anyone out there?

变为:

你好,世界.有没有人在那里?



1> Judah Gabrie..:

的自由和开源HtmlAgilityPack具有在其样品中的一个,从HTML转换为纯文本的方法.

var plainText = HtmlUtilities.ConvertToPlainText(string html);

给它一个HTML字符串

你好世界!
是我!!

你会得到一个纯文本结果,如:

hello, world!


我之前使用过HtmlAgilityPack,但是我看不到对ConvertToPlainText的任何引用.你能告诉我在哪里可以找到它吗?
Horatio,它包含在HtmlAgilityPack附带的一个示例中:http://htmlagilitypack.codeplex.com/sourcecontrol/changeset/view/62772?projectName=htmlagilitypack#52179
实际上,Agility Pack中没有内置的方法.你链接的是一个使用Agility Pack遍历节点树,删除`script`和`style`标签并将其他元素的内部文本写入输出字符串的示例.我怀疑它通过了真实世界输入的大量测试.
有人可以提供有效的代码,而不是链接到需要改装才能正常工作的样品吗?
现在可以在此处找到该示例:https://github.com/ceee/ReadSharp/blob/master/ReadSharp/HtmlUtilities.cs
链接的示例工作得很好.对于任何努力使用它的人,只需将整个类复制到您自己的项目中并使用ConvertHTML方法.您还需要将HtmlAgilityPack dll下载并引用到您的项目中.
提供的链接不能很好地解析空白.另一个是在http://stackoverflow.com/questions/731649/how-can-i-convert-html-to-text-in-c#25178738上回答SO问题

2> Ben Anderson..:

我无法使用HtmlAgilityPack,所以我为自己写了第二个最佳解决方案

private static string HtmlToPlainText(string html)
{
    const string tagWhiteSpace = @"(>|$)(\W|\n|\r)+<";//matches one or more (white space or line breaks) between '>' and '<'
    const string stripFormatting = @"<[^>]*(>|$)";//match any character between '<' and '>', even when end tag is missing
    const string lineBreak = @"<(br|BR)\s{0,1}\/{0,1}>";//matches: 
,
,
,
,
,
var lineBreakRegex = new Regex(lineBreak, RegexOptions.Multiline); var stripFormattingRegex = new Regex(stripFormatting, RegexOptions.Multiline); var tagWhiteSpaceRegex = new Regex(tagWhiteSpace, RegexOptions.Multiline); var text = html; //Decode html specific characters text = System.Net.WebUtility.HtmlDecode(text); //Remove tag whitespace/line breaks text = tagWhiteSpaceRegex.Replace(text, "><"); //Replace
with line breaks text = lineBreakRegex.Replace(text, Environment.NewLine); //Strip formatting text = stripFormattingRegex.Replace(text, string.Empty); return text; }


<布拉布拉> 解析出来,所以我移动了text = System.Net.WebUtility.HtmlDecode(text); 到方法的底部

3> vfilby..:

如果您正在谈论标签剥离,那么如果您不必担心

mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有