我正在使用C#中的Webbrowser控件并尝试访问文档中的一些HtmlElements。 问题是文档Body仅包含五个孩子中的两个。 (http://www.target.com/cart/ref=nav_sc_rev_checkout)。所以我无法访问正文中的特定元素,尽管它在UI中渲染得很好。
我怀疑Body中存在错误的HTML,因此文档树已损坏?
有没有办法处理这个问题,因为它仍然很好......?
感谢。
更新: 问题是DocumentCompleted事件被触发但Doc没有被完全解析,所以这就是为什么我只有5个元素中的2个。
答案 0 :(得分:1)
是的,WebBrowser是IE的包装器,它将尽可能好地处理错误的HTML。
答案 1 :(得分:0)
您不能简单地将内容写入文本文件而不是Web浏览器控件,并将其转换为HTML文件。然后将其加载到浏览器中并使用您选择的开发工具进行检查。
答案 2 :(得分:0)
除了这个站点的html代码超过200 errors(大多数缺少实体)之外,你可以尝试将代码加载到程序内的XmlDocument或XDocument中,并通过XPath访问你想要的节点。
答案 3 :(得分:0)
如果您需要以编程方式与HTML进行交互,更具体地说是错误的HTML,我建议您查看HTMLAgilityPack。
这是一个敏捷的HTML解析器 构建一个读/写DOM并支持 普通的XPATH或XSLT(实际上你 不必了解XPATH也不了解 使用XSLT,不用担心......)。它是 允许您使用的.NET代码库 解析“out of the web”HTML文件。的的 解析器非常宽容“真实 世界“格式错误的HTML。对象 模型与提出的非常相似 System.Xml,但用于HTML文档(或 流)。