使用堆栈 C# 确认文件中的有效 HTML 标记

Posted

技术标签:

【中文标题】使用堆栈 C# 确认文件中的有效 HTML 标记【英文标题】:Confirming valid HTML tags in file using a stack C# 【发布时间】:2018-06-06 11:06:04 【问题描述】:

我需要阅读html 文件并确认所有HTML 标记都已使用Stack 正确关闭。我现在无法阅读文件并找到每个标签。我不确定我应该如何进行。我应该阅读文件的每一行,使用正则表达式查找标签,然后添加到堆栈中......还是有更好的方法来做到这一点?

【问题讨论】:

【参考方案1】:

您尝试使用的每个手工解决方案都将成为一场噩梦。我真的建议您使用可以正确处理HTML 的外部库。有了HTML Agility Pack,这个任务就成了笑话:

// your string variable containing HTML
String html = ...

HtmlDocument document = new HtmlDocument();
document.LoadHtml(html);

foreach (HtmlParseError error in document.ParseErrors)

    Console.WriteLine("ERROR: " + error.Code.ToString());
    Console.WriteLine(error.Reason);
    Console.WriteLine();

【讨论】:

如果我是正确的,那 for 循环只是检查错误?我错了吗?另外这段代码只是加载html文档,对吗? 你是绝对正确的。您加载文档(或包含 HTML 的字符串),然后打印最终发现的错误。也可能没有,在这种情况下不会显示任何消息。 遗憾的是我不得不使用堆栈来确认是否有任何错误。不过,这看起来确实很方便。是否可以使用堆栈来完成这项工作? 在这种情况下我仍然需要了解堆栈是什么。 堆栈是遵循“先进后出”经验法则的对象集合。 msdn.microsoft.com/en-us/library/…

以上是关于使用堆栈 C# 确认文件中的有效 HTML 标记的主要内容,如果未能解决你的问题,请参考以下文章

C#,MVC 确认删除对话框

C# - 使用标记来识别值的子字符串总和

如何有效的使用C#读取文件

递归函数中的堆栈实现

如何在 Swift 中正确实现方向数组缩减挑战中的堆栈

删除 C# 中的某些 HTML 标记