如何阻止HtmlAgilityPack更改加载页面的来源?

时间:2013-10-04 14:23:13

标签: c# parsing

我正在使用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>

我该如何避免?

1 个答案:

答案 0 :(得分:3)

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

在这种情况下,HTML Agility Pack采用字符串输入并尽力从该输入创建有效的DOM。这是无效的:

<font class=hello id=price>

因此它将其翻译成有效的内容:

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

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