我有一些从文本中删除HTML标记的代码。我不关心内容(脚本,CSS,文本等),重要的是,至少目前来说,标签本身已被剥离。在C#中优化HTML标记删除
这可能正在进入微型优化剧院,但是这个代码是少数几个会经常针对大量数据运行的函数之一,所以任何百分比保存都可能会从整体应用程序的角度。
目前的代码看起来是这样的:
public static string StripTags(string html)
{
var currentIndex = 0;
var insideTag = false;
var output = new char[html.Length];
for (int i = 0; i < html.Length; i++)
{
var c = html[i];
if (c == '>')
{
insideTag = false;
continue;
}
if (!insideTag)
{
if (c == '<')
{
insideTag = true;
continue;
}
output[currentIndex] = c;
currentIndex++;
}
}
return new string(output, 0, currentIndex);
}
是否有任何明显的.NET技巧,我错过了这里?有关信息,请使用.net 4.
非常感谢。
那么CDATA部分呢? –
@Dour高拱 - 好问题 - 目前我让这些消亡,因为这符合我解析的数据。 – Timbo
如果代码经常运行,你可能会得到一个很大的加速,只分配你的输出数组一次(显然有一些明智的大小;如果内存是一个问题,你可以使用弱引用)并尽可能地使用它。 java中的一个非常类似的问题得到了大约15%的提速 – Voo