我在从blow表中选择所有dt
和dd
时遇到问题
<dl class="Grid Grid--multicol Grid--2col:40em Grid--4col:60em">
<div class="Grid-cell u-flex u-flexOne u-flexRow">
<dt> Item ID:</dt>
<dd class="u-weightSemibold u-paddingL5px">72547664</dd>
</div>
<div class="Grid-cell u-flex u-flexOne u-flexRow">
<dt> License:</dt>
<dd class="u-weightSemibold u-paddingL5px">
<a class="u-linkDodgerBlue js-infoLicenseString" href="" target="_blank">Standard</a>
</dd>
</div>
<div class="Grid-cell u-flex u-flexOne u-flexRow">
<dt> Usage:</dt>
<dd class="u-weightSemibold">Commercial<span class="TooltipQuestionMark"></span></dd>
</div>
<div class="Grid-cell u-flex u-flexOne u-flexRow">
<dt> Required Plugins:</dt>
<dd class="u-weightSemibold u-paddingL5px">None</dd>
</div>
<div class="Grid-cell u-flex u-flexOne u-flexRow">
<dt> Creation Tool:</dt>
<dd class="u-weightSemibold u-paddingL5px">Autodesk</dd>
</div>
<div class="Grid-cell u-flex u-flexOne u-isHidden:0-60em"></div>
</dl>
我写这篇文章
i = 0; doc.DocumentNode.SelectNodes("//dl").Where(x => x.HasClass("Grid")).FirstOrDefault().SelectNodes(".//div").ToList().ForEach(x =>
{
result.Items.Add(new DownloadItem { Name = "specs-title", Index = i, Type = DownloadItemType.Text, Value = x.SelectNodes(".//dt").FirstOrDefault().GetText() });
result.Items.Add(new DownloadItem { Name = "specs", Index = i++, Type = DownloadItemType.Text, Value = x.SelectNodes(".//dd").GetText() });
});
上面的代码只获取第一行Item ID:
| 72547664
列出所有dt
和dd
信息有什么问题
发布于 2018-08-10 04:24:25
代码的问题在于,第一次使用类Grid
获取所有dl
元素时,使用FirstOrDefault()
方法只获取该类型的DOM元素中的第一个。
i = 0; doc.DocumentNode.SelectNodes("//dl").Where(x => x.HasClass("Grid")).SelectNodes(".//div").ToList().ForEach(x =>
{
result.Items.Add(new DownloadItem { Name = "specs-title", Index = i, Type = DownloadItemType.Text, Value = x.SelectNodes(".//dt").FirstOrDefault().GetText() });
result.Items.Add(new DownloadItem { Name = "specs", Index = i++, Type = DownloadItemType.Text, Value = x.SelectNodes(".//dd").GetText() });
});
您必须删除FirstOrDefault()
以获取适合您需求的所有元素。
https://stackoverflow.com/questions/51771463
复制相似问题