有没有办法解析无效的HTML?

Jcf*_*Jcf 6 .net c# xml

我需要在整个文件的随机行中解析包含几个随机元素(如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)

我正在尝试解析该表中的信息.

Mat*_*ský 4

让 Internet Explorer 为您完成艰苦的工作 - 它会尽最大努力将损坏的标签结构“修复”为它可以理解的内容(技术上有效的 XML 以及正确的标签配对等)。

在WebBrowser(或Windows.Controls.WebBrowser ,如果您喜欢 WPF 库)中打开 HTML ,然后您可以通过Document属性遍历 DOM 。DOM 永远是正确的,无论原始源代码有多么糟糕。

不需要第三方库。