c# - HTML Agility Pack,来自节点的SelectNodes

标签 c# .net html-agility-pack

为什么这会选择我文档中的所有<li>元素?

HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(url);

var travelList = new List<Page>();
var liOfTravels = doc.DocumentNode.SelectSingleNode("//div[@id='myTrips']")
                     .SelectNodes("//li");

我要获取的是<li>中的所有<div>元素,并带有“myTrips”的id

最佳答案

这有点令人困惑,因为您期望它仅对ID为“myTrips”的div上执行一次selectNodes,但是,如果您执行另一个SelectNodes(“//li”),它将从文档顶部执行另一次搜索。

我通过将语句合并为一个语句来解决此问题,但这仅适用于一个ID为“mytrips”的div的网页。查询如下所示:

doc.DocumentNode.SelectNodes("//div[@id='myTrips'] //li");

关于c# - HTML Agility Pack,来自节点的SelectNodes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10583926/

相关文章:

javascript - 允许 System.Windows.Forms.WebBrowser 运行 javascript

c# - 调试代码时 Ninject 出现无源可用错误

c# - 为什么 C# 编译器允许在 IEnumerable<T> 和 TAlmostAnything 之间进行显式转换?

c# - Linq (EntityFramework) 中的正则表达式,数据库中的字符串处理

c# - int i =0 和 int i = default(int) 之间有性能差异吗?

javascript - Html 节点内的信息不可见

c# - 使用 HTML Agility Pack 和 Linq 解析 html

c# - 如何使用 HTMLAgilityPack 访问多个 <div> 标签的内容?

c# - 选择问题中用户的所有标签 asp.net c# EF

c# - 从同一类的不同实例设置 protected /私有(private)属性