为什么选择我的文档中的所有<li>
元素?Html Agility Pack,节点中的SelectNodes
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(url);
var travelList = new List<Page>();
var liOfTravels = doc.DocumentNode.SelectSingleNode("//div[@id='myTrips']")
.SelectNodes("//li");
我要的是让在<div>
所有<li>
元素与“myTrips”的id
。
我不认为查询是一样的。实际上,当他做第一个选择“//div [@ id ='myTrips']”当前节点改变。这就是为什么第二个选择应该是“.//li”(来自当前节点的任何地方)而不是“// li”(从根节点的任何地方)。敏捷性的确如预期的那样。 – derloopkat
@derloopkat,他们**是相同的(这里没有恕我直言;如果他们不是,你可以在解决方案查询中删除点,但你不能,你能吗?)。不幸的是,HTMLAgilityPack从根目录搜索,无论你在哪个节点。恕我直言部分是这样的 - 通常关注给定节点的重点是,您继续从该节点搜索**,而不是从根节点再次搜索。在第二个子查询中没有添加点的解决方案查询根本没有意义,因此问题为什么支持它们? – greenoldman
我们正在谈论不同的事情。当我说查询不一样时,我正在谈论“// li”和“。//li”。通过“那些查询”你可以参考下面的查询。 – derloopkat