Tom*_*lak 110
如果它只是从字符串中剥离所有 HTML标记,那么这也适用于正则表达式.更换:
<[^>]*(>|$)
Run Code Online (Sandbox Code Playgroud)
全局使用空字符串.不要忘记事后标准化字符串,替换:
[\s\r\n]+
Run Code Online (Sandbox Code Playgroud)
使用单个空格,并修剪结果.(可选)将任何HTML字符实体替换回实际字符.
注意:
>使用属性值.遇到此类值时,此解决方案将返回损坏的标记.Ser*_*pth 74
立即下载HTMLAgilityPack!;) 下载LInk
这允许您加载和解析HTML.然后,您可以导航DOM并提取所有属性的内部值.说真的,它最多会占用大约10行代码.它是最好的免费.net库之一.
这是一个示例:
string htmlContents = new System.IO.StreamReader(resultsStream,Encoding.UTF8,true).ReadToEnd();
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlContents);
if (doc == null) return null;
string output = "";
foreach (var node in doc.DocumentNode.ChildNodes)
{
output += node.InnerText;
}
Run Code Online (Sandbox Code Playgroud)
use*_*144 64
Regex.Replace(htmlText, "<.*?>", string.Empty);
Run Code Online (Sandbox Code Playgroud)
小智 11
protected string StripHtml(string Txt)
{
return Regex.Replace(Txt, "<(.|\\n)*?>", string.Empty);
}
Protected Function StripHtml(Txt as String) as String
Return Regex.Replace(Txt, "<(.|\n)*?>", String.Empty)
End Function
Run Code Online (Sandbox Code Playgroud)
小智 6
我已经在asp.net论坛上发布了它,它似乎仍然是那里最简单的解决方案之一.我不保证它是最快或最有效的,但它非常可靠.在.NET中,您可以使用HTML Web Control对象本身.您真正需要做的就是将您的字符串插入到临时HTML对象(如DIV)中,然后使用内置的"InnerText"来获取标记中未包含的所有文本.请参阅下面的简单C#示例:
System.Web.UI.HtmlControls.HtmlGenericControl htmlDiv = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
htmlDiv.InnerHtml = htmlString;
String plainText = htmlDiv.InnerText;
Run Code Online (Sandbox Code Playgroud)
我在c#中编写了一个非常快速的方法,它击败了正则表达式.它托管在CodeProject上的一篇文章中.
它的优点是,在更好的性能中,能够替换命名和编号的HTML实体(那些像&amp;和&203;)和注释块替换等等.
请阅读CodeProject上的相关文章.
谢谢.
| 归档时间: |
|
| 查看次数: |
128917 次 |
| 最近记录: |