如何得到字符串中(网页源码字符串)标签的最大嵌套深度

newlive001 2009-04-12 04:37:06

我有个程序在组件分析HTML内容时,当标签的嵌套深度太大的会异常,我现在没办法改这个组件源码,只有变相处理,在组件
分析HTML之前,先判断HTML中标签最大的嵌套深度,如果太大了就不执行组件分析,我现在要得到网页中标签最大嵌套深
度的算法,最好有现成的代码,要够快,这是救命的,大家帮帮忙
...全文
54 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
freewind0521 2009-04-14
  • 打赏
  • 举报
回复
直接用个try{}catch{}怎么样呢,如果出错也不影响,减少一次层次计算
LemIST 2009-04-12
  • 打赏
  • 举报
回复
http://bbs.xgo.com.cn/thread-206818-1-1.html
结果:3504层,很深很深:)
LemIST 2009-04-12
  • 打赏
  • 举报
回复
Regex reg = new Regex("</?[^>]*?/?>", RegexOptions.Compiled);

string text = new StreamReader("test.html").ReadToEnd();

int curInnerCount = 0; int maxCount = 0;
MatchCollection mc = reg.Matches(text);
foreach (Match mat in mc)
{
if (mat.Value.StartsWith("</"))
{
curInnerCount--;
}
else if (mat.Value.EndsWith("/>"))
{
curInnerCount++;
if (curInnerCount > maxCount)
maxCount = curInnerCount;
curInnerCount--;
}
else
{
curInnerCount++;
if (curInnerCount > maxCount)
maxCount = curInnerCount;
}

}

Console.WriteLine(maxCount);
修改一下昵称 2009-04-12
  • 打赏
  • 举报
回复
up

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧