【发布时间】:2019-01-26 04:32:19
【问题描述】:
这是表结构:
<table class="tb-stock tb-option">
<tr>
<th class="bgc2">col1</th>
<th class="bgc2">col2</th>
<th class="bgc2">col3</th>
</tr>
<tr class="alt-row">
<th class="">2018/1/29</th>
<td class="">0.11</td>
<td class=" b-b">0.50</td>
</tr>
<tr class="alt-row">
<th class="">2018/1/30</th>
<td class="">0.22</td>
<td class=" b-b">0.55</td>
</tr>
</table>
我想获取“tr”下面的所有元素(包括“th”和“td”)
如何使用 linq 来实现这一点?
问题位于“..tr.Elements("td|th")..”
代码:
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(ms, Encoding.UTF8);
List<List<string>> table =
doc.DocumentNode.SelectSingleNode("//table[@class='tb-stock tb-option']")
.Descendants("tr")
.Skip(1)
.Where(tr => tr.Elements("th").Count() >= 1)
.Select(tr => tr.Elements("td|th").Select(td => td.InnerText).ToList())
.ToList();
【问题讨论】:
-
你可以试试推杆或条件吗?
"td or th" -
它不工作。有什么办法可以将“tr”中的所有元素放入一个List中?
标签: linq html-table html-agility-pack