有一个类似
的HTML <div id="info_tab_members">
<div id="info_members" class="tabslevel">
<ul>
<li><a href="#info_tab_members_past">Past members</a></li>
<li><a href="#info_tab_members_live">Live musicians</a></li>
</ul>
<div id="info_tab_members_all">
<div class="ui-tabs-panel">
<!-- THIS TABLE I WANT -->
<table class="display tblClass" cellpadding="0" cellspacing="0">....
<!-- DATA I WANT -->
</table>
</div>
</div>
<div id="info_tab_members_current">
<div class="ui-tabs-panel">
<table class="display tblClass" cellpadding="0" cellspacing="0"> ...
</table>
</div>
</div>
</div>
</div>
如何获取ID为info_tab_members_all
的div中的表格?
需要考虑的是,有几个表具有公共类display tblClass
我试过了:
首先我试着做
foreach (HtmlNode row in doc.DocumentNode.SelectNodes("table[@class='display tblClass']/tbody/tr"))
{
...
}
但问题是我从所有display tblClass
的表中获取数据
所以我试过了:
var tbl = doc.DocumentNode.
SelectSingleNode("//*[@id='info_tab_members_all']").
SelectNodes("table[@class='display tblClass']/tbody/tr").
ToList();
但我收到错误:
“对象引用未设置为对象的实例”
如何使用div id指定我想要的表格:'info_tab_members_all'
?
答案 0 :(得分:0)
如果您能够使用HtmlAgilityPack.CssSelectors
,那么您很幸运,
var table = htmlDoc.QuerySelectorAll("#info_tab_members_all table");
// table is `IList<HtmlNode>`
如果没有,那么你只需要正确的XPath。这里是great reference for converting CSS to XPath,反之亦然。
var table = htmlDoc.DocumentNode.SelectSingleNode("//*[@id='info_tab_members_all']/*/table")
// table is `HtmlNode`