0

我正在使用 HtmlAgilityPack 加载 html 文件,如下所示:

var doc = new HtmlAgilityPack.HtmlDocument();
doc.OptionOutputOriginalCase = true;
doc.Load(@"c:\ftp\file3.html");

然后我使用xpath来选择节点并获取outerHTML,但问题是我得到了一个修改过的页面源,例如我得到:

<font class="hello" id="price">

当在真实页面源上时

<font class=hello id=price>

我该如何避免呢?

4

1 回答 1

3

你没有。至少在使用 DOM 解析器时不会。

在这种情况下,HTML 敏捷包正在获取字符串输入,并尽最大努力从该输入创建一个有效的 DOM。这是无效的:

<font class=hello id=price>

所以它将它翻译成有效的东西:

<font class="hello" id="price">

它将尝试对 HTML 中的所有无效标记执行相同的操作。如果您不想使用有效的标记,那么 DOM 解析器可能不是适合这项工作的工具。那时您正在使用自定义字符串输入,您必须自己解析它。

于 2013-10-04T14:27:08.183 回答