我需要在整个文件的随机行中解析包含几个随机元素(如BODY)的无效HTML文件.我试图将其解析为XML,但没有运气,因为这个文件也有无效的XML结构(文件中随机元素中的许多不正确的属性).HtmlAgilityPack也无法读取此文件.它只是在第一个不正确的元素之前读取文件而在之后没有任何内容.
这是这种文件的一个小例子:
<HTML>
<HEAD>
<TITLE>My title</TITLE>
</HEAD>
<BODY leftmargin=9 topmargin=7 >
<TABLE>
<TR>
<TD>Test</TD>
</TR>
<TR>
<TD>Test</TD>
<TD>Test<TD>
</TR>
<BODY> <-- This is the point where HtmlAgilityPack is stuck --!>
<TR>
<TD>Test</TD>
<TD>Test</TD>
</TR>
<TR>
</BODY>
<TR>
<TD><FONT>Test</FONT></TD>
</TR>
</TABLE>
</BODY>
Run Code Online (Sandbox Code Playgroud)
我正在尝试解析该表中的信息.
让 Internet Explorer 为您完成艰苦的工作 - 它会尽最大努力将损坏的标签结构“修复”为它可以理解的内容(技术上有效的 XML 以及正确的标签配对等)。
在WebBrowser(或Windows.Controls.WebBrowser ,如果您喜欢 WPF 库)中打开 HTML ,然后您可以通过Document属性遍历 DOM 。DOM 永远是正确的,无论原始源代码有多么糟糕。
不需要第三方库。