gpt4 book ai didi

c# - 从 WebBrowserControl 中单击的 HtmlElement 获取 XPath

转载 作者:行者123 更新时间:2023-11-30 13:37:48 25 4
gpt4 key购买 nike

如何从 WebBrowserControl 中单击的 HtmlElement 获取 XPath?

这就是我检索点击的 HtmlElement 的方式:

System.Windows.Forms.HtmlDocument document = this.webBrowser1.Document;
document.MouseUp += new HtmlElementEventHandler(this.htmlDocument_Click);

private void htmlDocument_Click(object sender, HtmlElementEventArgs e)
{
HtmlElement element = this.webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition);
}

我想点击网站上的特定元素(价格、商品编号、描述等)并获取它们的 XPath 表达式。

谢谢!

最佳答案

XPath 表达式不是 HTML 的标准功能(与 XML 不同)。如果您希望获得一个元素 XPath,以后可以将其与 Html Agility Pack 一起使用,你至少有两个选择:

  1. 使用 HtmlElement.Parent 遍历元素的 DOM 祖先树并 build 手动设置 XPath。

  2. 使用 Html Agility Pack 本身并执行类似这样的操作(未经测试):

HtmlElement element = this.webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition);

var savedId = element.Id;
var uniqueId = Guid.NewGuid().ToString();
element.Id = uniqueId;

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(element.Document.GetElementsByTagName("html")[0].OuterHtml);
element.Id = savedId;

var node = doc.GetElementbyId(uniqueId);
var xpath = node.XPath;

关于c# - 从 WebBrowserControl 中单击的 HtmlElement 获取 XPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20736331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com