【发布时间】:2017-11-29 16:25:52
【问题描述】:
输入:
<head><title>Title</title></head>
<font face="Verdana" size="2">
<p>
<b>Bold sentence.</b>
<br><br>Sentence after two breaks.<br><br>Sentence after another two breaks. <b><i>bold and italicized sentence.</i></b> sentence. <br><br>final sentence after two more breaks.
</font></p>
<form><center><div style='padding-left: 16px; padding-right: 16px;'><a class='button' href='javascript:void(0);' onclick='javascript:window.close()'><img src='/GBUIAssets/Web20/img/frame/buttonshade.png' alt='buttonShade' /><span class='roundLeft'><span class='roundRight'>Fermer</span></span></a></div></center></form></font>
我正在删除头部、字体和表格。我得到的输出是:
<p>
<b>Bold sentence.</b>
<br><br>Sentence after two breaks.<br><br>Sentence after another two breaks. <b><i>bold and italicized sentence.</i></b> sentence. <br><br>final sentence after two more breaks.
<p>
这是有问题的,因为我试图在之后将其转换为 xml,这会引发错误。为什么它“修复”我的代码中已经有效的一部分?有什么想法可能导致它吗?如果需要,我可以提供更多代码,但我只想首先确保没有明显的步骤我遗漏了。
编辑:为了完整的上下文,我剥离了 html 的正文内容。关键是,这个 HTML 是 HIDEOUS。格式真的很差。我将它加载到 xml 中以抛出 html 文档错误的特定错误,并将其吐出到每个未能剥离的文件的错误报告中
【问题讨论】:
-
您的标记无效。您正在关闭字体标签之外的 p 标签。但是你在字体标签中声明了开始的 p 标签。
-
是的,这个标记是由其他人编写的,并且存在错误。所以你认为是这个嵌套错误导致了 htmlagilitypack 中的问题? @MikeCorcoran
-
是的,HAP 正在尝试“修复”html 汤。在这种情况下,它并没有完全按照您想要的方式进行修复。您可能需要使用某些启发式方法对文件进行预处理以解决它。
-
在使用 HAP 处理之前,将“”替换为“”可能就足够了。
-
为什么要将 HTML 加载到 XML 文档中? HTML 不是 XML 的子集。
标签: c# html html-agility-pack xmlconvert