如何在 div 中获取 table,使用 htmlagilitypack 通过特定 id 搜索 div
How to get a table inside a div, searching div by a certain id using htmlagilitypack
有一个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>
如何获取div内id为info_tab_members_all
的table?
需要考虑的是,有几个 table 具有共同的 class display tblClass
我试过:
首先我尝试做
foreach (HtmlNode row in doc.DocumentNode.SelectNodes("table[@class='display tblClass']/tbody/tr"))
{
...
}
但问题是我从所有具有 display tblClass
的 table 获取数据
于是我尝试了:
var tbl = doc.DocumentNode.
SelectSingleNode("//*[@id='info_tab_members_all']").
SelectNodes("table[@class='display tblClass']/tbody/tr").
ToList();
但我得到错误:
“Object reference not set to an instance of an object”
如何使用 div id: 'info_tab_members_all'
指定我想要的 table?
如果您能够使用 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`
有一个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>
如何获取div内id为info_tab_members_all
的table?
需要考虑的是,有几个 table 具有共同的 class display tblClass
我试过:
首先我尝试做
foreach (HtmlNode row in doc.DocumentNode.SelectNodes("table[@class='display tblClass']/tbody/tr"))
{
...
}
但问题是我从所有具有 display tblClass
的 table 获取数据
于是我尝试了:
var tbl = doc.DocumentNode.
SelectSingleNode("//*[@id='info_tab_members_all']").
SelectNodes("table[@class='display tblClass']/tbody/tr").
ToList();
但我得到错误:
“Object reference not set to an instance of an object”
如何使用 div id: 'info_tab_members_all'
指定我想要的 table?
如果您能够使用 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`