在c#中验证字符串中的HTML标签

本文关键字:HTML 标签 验证 字符串 | 更新日期: 2023-09-27 18:09:29

假设我们有以下HTML字符串:

string A = " <table width=325><tr><td width=325>test</td></tr></table>"
string B = " <<table width=325><tr><td width=325>test</td></table>"
如何根据HTML规范在c#中验证AB ?

A应该返回true而B应该返回false

在c#中验证字符串中的HTML标签

对于这种特殊情况,您可以使用HTML Agility Pack来断言HTML是否格式良好,或者您是否有未打开的标签。

var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(
    "WAVEFORM</u> YES, <u>NEGATIVE AUSCULTATION OF EPIGASTRUM</u> YES,");
foreach (var error in htmlDoc.ParseErrors)
{
    // Prints: TagNotOpened
    Console.WriteLine(error.Code);
    // Prints: Start tag <u> was not found
    Console.WriteLine(error.Reason); 
}

检查HTML字符串是否有未打开的标签

首先要检查它是否是有效的XML。

顺便说一下,我认为你的两个例子都是不正确的,因为你都遗漏了</tr>

http://web.archive.org/web/20110820163031/http://markbeaton.com/SoftwareInfo.aspx?ID=81a0ecd0-c41c-48da-8a39-f10c8aa3f931

Github链接https://github.com/markbeaton/TidyManaged

这个家伙为HTMLTidy写了一个。net包装器。我还没用过,但也许你正在寻找