HTML渲染和检查元素功能?如何使用C#实现。

4

我想进行一个HTML渲染,显示一个HTML文档,不一定是在线网页。然后当我点击一个HTML控件时,它只显示我点击的HTML。真正的意图是从根元素获取到选定标签的xpath。

1个回答

5
我认为你必须使用 System.Windows.Forms.WebBrowser 控件来加载你的 HTML 文档。例如,重写 Form 的 OnLeftButton 事件,然后调用 WebBrowser.Document.GetElementFromPoint 方法。这个方法将返回 HtmlElement 类型的对象。作为结果,你将得到一个 HTML 元素,可以从中导航到内部 html 源代码或通过标签层次结构导航到你选择的标签;)
我为你创建了一些示例:
private static String GetTagNameByClick(WebBrowser refWebBrowser, Int32 valScreenX, Int32 valScreenY)
    {
        Point refPoint = refWebBrowser.PointToClient(new Point(valScreenX, valScreenY));

        HtmlElement refHtmlElement = refWebBrowser.Document.GetElementFromPoint(refPoint);

        return refHtmlElement.TagName;
    }

祝你好运!


1
谢谢Edward,它真的帮我找到了方法=) !! 现在我只是尝试找出如何获取在浏览器上单击的位置。 我尝试了你的方式,但我不得不重载webBrowser.Document的Document.Click事件才能触发该事件。 非常感谢这一点启示。 - Johans
@Johans,抱歉没有看到你的评论!如我所理解,示例中的valScreenX和valScreenY是屏幕坐标,而不是表单或WebBrowser控件的坐标;) - Edward83
@Johans 使用这个类 http://msdn.microsoft.com/en-us/library/system.windows.forms.cursor.position.aspx 来获取鼠标指针位置,“表示屏幕坐标中光标位置的点。” ;) - Edward83

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接