【发布时间】:2016-06-18 02:01:32
【问题描述】:
我正在使用 htmlagilitypack 在 C# 中制作一个 webscraper 应用程序,现在我想要一个下拉菜单来选择文档中的一个元素。我想查看 xpath 的字符串,这是我希望的结果
//a[@href='http://www.google.com']
但我得到的 xpath 是
/html[1]/body[1]/div[1]/a[1]
有什么方法可以让 xpath 更易读吗? 我使用的代码是:
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(data);
List<string> nodes = new List<string>();
foreach (HtmlNode n in doc.DocumentNode.Descendants()){
nodes.Add(n.XPath);
}
List<string> ComboItems = nodes.Distinct().ToList();
_comboFilterNode.ItemsSource = ComboItems;
它不必是我给出的第一个示例的格式,但我确实需要一些东西,因此您无需阅读整个 HTML 文件即可知道它是什么元素。
或获取方式:
<a href="http://www.google.com/"/>
它并不总是<a>,我不想要innerHTML
提前感谢您的帮助:D
【问题讨论】:
-
"...我不想要 innerHTML",
innerHTML有什么问题? (我会采用这种方式,而不是尝试获取给定元素的不同 XPath,这样构建起来会更加复杂) -
如果我得到了 innerHTML,我也得到了所有的子元素,我不想要那个
标签: c# html xpath html-agility-pack