我正在使用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>
我该如何避免?
答案 0 :(得分:3)
你没有。至少在使用DOM解析器时没有。
在这种情况下,HTML Agility Pack采用字符串输入并尽力从该输入创建有效的DOM。这是无效的:
<font class=hello id=price>
因此它将其翻译成有效的内容:
<font class="hello" id="price">
它将尝试对HTML中的任何和所有无效标记执行相同操作。如果您不想使用有效标记,则DOM解析器可能不是该作业的正确工具。那时你正在使用自定义字符串输入,你必须自己解析它。