我需要将HTML-page
中的所有td标记提取到列表中。
我需要按colspan="2"
过滤结果。
这就是我迄今为止使用HTML敏捷包所做的。不幸的是它不起作用。
var tdList = from d in doc.DocumentNode.Descendants()
where d.Name == "td" && d.Attributes["colspan"].Value == "2"
select d;
答案 0 :(得分:1)
您可以使用简单的XPath表达式:
string source = @"<html>
<body>
<div>
<table>
<tr>
<td colspan='1' id='td1'>no</td>
<td colspan='2' id='td2'>yes1</td>
<td colspan='2' id='td3'>yes2</td>
<td colspan='2' id='td4'>yes3</td>
<td colspan='1' id='td5'>no</td>
</tr>
</table>
</div>
</body>
</html>";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(source);
var nodes = doc.DocumentNode.SelectNodes("//td[@colspan='2']");
nodes.Select(x=> x.InnerText).Dump();
输出:
是1是2是3
修改强> 我刚刚测试了你的代码,它与我的虚拟源数据文档工作得很好。如果出现任何其他故障,您应该正确编辑并重新提出问题。