【发布时间】:2010-12-30 17:12:11
【问题描述】:
对于给定的 HTML,我想要 id 的值
<div class="name" id="john-5745844">
<div class="name" id="james-6940673">
更新 这就是我目前所拥有的
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.Load(new StringReader(pageResponse));
HtmlNode root = htmlDoc.DocumentNode;
List<string> anchorTags = new List<string>();
foreach (HtmlNode div in root.SelectNodes("//div[@class='name' and @id]"))
{
HtmlAttribute att = div.Attributes["id"];
Console.WriteLine(att.Value);
}
我得到的错误是在foreach 行说明:Object reference not set to an instance of an object. 我相信这部分是错误的"//div[@class='name' and @id]"
【问题讨论】:
-
XPath 代码应该加载所有具有类“名称”并包含 id 属性的 div。 HTML 是静态的吗?还是用js生成的?
-
@NickAldwin 原始 html 更复杂,我认为在尝试简化问题时,它影响了解决方案。我现在正在尝试包含原始 html。
-
如何判断 HTML 是静态的还是用 js 生成的?再看一遍,你的 XPath 查询应该是正确的
-
发现我的错误,我引用了以前的 html 字符串 smacks head。
标签: c# html-parsing html-agility-pack