2010-11-29 93 views
0

我正在使用C#中的Webbrowser控件,并试图访问文档中的一些HtmlElements。 问题是文档Body仅包含五个孩子中的两个。 (http://www.target.com/cart/ref=nav_sc_rev_checkout)。所以我无法访问正文中的特定元素,尽管它在UI中渲染得很好。Webbrowser控件可以处理“坏”HTML吗?

我怀疑Body中存在错误的HTML,以致文档树已损坏?

有没有办法处理这个,因为它仍然呈现不错..?

谢谢。

更新: 的问题是,DocumentCompleted事件被触发,但文件并没有完全解析所以这就是为什么我只得到了2出5个元素。

回答

1

是的,WebBrowser是一个IE浏览器的包装,它会尽可能好地处理坏HTML。

0

你不能简单地将内容写入文本文件而不是Web浏览器控件,并将其写入HTML文件。然后将其加载到浏览器中,并使用您选择的开发工具进行检查。

0

除了这个网站的html代码超过200 errors(主要是缺失的实体)之外,您可以尝试将代码加载到程序中的XmlDocument或XDocument中,并通过XPath访问您想要的节点。

0

如果您需要以编程方式与HTML进行交互,更具体地说是错误的HTML,我建议您看看HTMLAgilityPack

这是一个灵活的HTML解析器 建立一个读/写DOM,并支持 平原XPath或XSLT(你实际上 不必须了解XPATH也不 XSLT使用它,不要担心。 ..)。它是 一个.NET代码库,它允许您将 解析为“超出网页”的HTML文件。 解析器非常容忍“真实 世界”格式错误的HTML。对象 模型非常类似于建议 System.Xml,但对于HTML文档(或 流)。

相关问题