【发布时间】:2016-05-12 06:44:13
【问题描述】:
html是这样的
<tr>
<th class="label">Brand</th>
<td class="data">Dell</td>
</tr>
<tr>
<th class="label">Series</th>
<td class="data">Inspiron Touch</td>
</tr>
<tr>
<th class="label">Color</th>
<td class="data">Black & Red</td>
</tr>
<tr>
<th class="label">Operating System</th>
<td class="data">Windows 10 Home</td>
</tr>
<tr>
<th class="label">Screen Size</th>
<td class="data">15.6"</td>
</tr>
<tr>
<th class="label">Touchscreen</th>
<td class="data">Yes</td>
</tr>
<tr>
<th class="label">Screen Resolution</th>
<td class="data">3840 x 2160</td>
</tr>
<tr>
<th class="label">Processor Type</th>
<td class="data">Intel Core i7 6th Gen</td>
</tr>
<tr>
<th class="label">Processor Speed</th>
<td class="data">2.6 GHz</td>
</tr>
<tr>
<th class="label">Processor Turbo</th>
<td class="data">Up to 3.5 GHz</td>
</tr>
<tr>
<th class="label">Processor Cache</th>
<td class="data">6 MB</td>
</tr>
<tr>
<th class="label">Processor Model</th>
<td class="data">i7-6700HQ</td>
</tr>
<tr>
<th class="label">RAM</th>
<td class="data">16GB</td>
</tr>
<tr>
<th class="label">RAM Type</th>
<td class="data">DDR3L</td>
</tr>
<tr>
<th class="label">Hard Disk Capacity</th>
<td class="data">1TB + 128GB SSD</td>
</tr>
<tr>
<th class="label">HDD Interface</th>
<td class="data">SATA, SSD</td>
</tr>
<tr>
<th class="label">HDD RPM</th>
<td class="data">5400</td>
</tr>
<tr>
<th class="label">Graphics</th>
<td class="data">Nvidia Graphics</td>
</tr>
<tr>
<th class="label">Graphics Detail</th>
<td class="data">Nvidia GeForce GTX 960M</td>
</tr>
我想获取 tr 标签内每个 th 和 td 标签的标签和数据,前 4 个只有 Brand 系列颜色和操作系统,但是还有一些其他项目在 tr 内也具有相同的 th 和 td 类,请告诉我如何使用 html 敏捷包获取这些项目,我将这 4 个插入数据库,我使用选择节点我只获取第一个 tr 的内部文本,当我到达这些 tr 时,我正在使用此代码
HtmlNodeCollection specsNode = null;
specsNode = doc.DocumentNode.SelectNodes("//tr']");
foreach (HtmlNode node in specsNode)
{
string htmli = node.InnerHtml;
HtmlDocument doci = new HtmlDocument();
doci.LoadHtml(htmli);
htmlNode node2 in doci.DocumentNode.SelectNodes("//td[@class='data']"){
node2.InnerText;
我现在对 HAP 更加熟悉了,但是 tr 中的类是相同的,我现在不知道如何获取它们。
【问题讨论】:
-
发布示例 HTMl,其中包括 在 tr 中也具有相同 th 和 td 类的一些其他项目。另外,到目前为止,您使用 HtmlAgilityPack 尝试过什么?
-
@har07 我已经编辑了问题
-
@har07 因为每个 td 都有相同的类,所以每次选择第一个和 td 时都选择方法我不知道如何获得第二个第三个和第四个
-
1.您的代码未编译,因此很难确切地看到您要执行的操作。 2.
SelectNodes()应该返回所有个匹配的节点,而不仅仅是第一个匹配的。那么究竟有什么问题呢? -
是的,我知道双斜杠和一个标签会给我所有匹配的节点,但我只想要前 4 个,然后在我只想要前四个之后将它们插入到我的数据库中,但它选择所有这些节点作为类是相同的,有没有我可以操作并给它们不同的类名的方法?
标签: html parsing html-agility-pack