我在c#中的xpath有问题,
我想找到具有这种结构的所有元素,
我有10个链接,所有链接都具有这种结构:
<div class="PartialSearchResults-item" data-zen="true">
<div class="PartialSearchResults-item-title">
<a class="PartialSearchResults-item-title-link result-link"target="_blank" href='https://www.google.com/'> Google</a>
</div>
<p class="PartialSearchResults-item-url">www.google.com</p>
<p class="PartialSearchResults-item-abstract">Search the world.</p>
</div>
Run Code Online (Sandbox Code Playgroud)
例如,通过此示例,我希望获得“ Google”和“ www.google.com”以及“搜索世界”。
var titles = hd.DocumentNode.SelectNodes("//div[contains(@class, 'PartialSearchResults-item')]");
string link;
foreach (HtmlNode node in titles){
string description = node.SelectSingleNode(".//*[contains(@class,'PartialSearchResults-item-abstract')]").InnerText;
link = node.SelectSingleNode(".//*[contains(@class,'PartialSearchResults-item-url')]").InnerText;
string title = node.SelectSingleNode(".//a[contains(@class,'PartialSearchResults-item-title-link result-link')]").InnerText;}
Run Code Online (Sandbox Code Playgroud)
但是我得到错误的空引用
我有一个列表,我想创建一个没有重复值记录的新列表
public List<links> results = new List<links>();
public List<links> final_results = new List<links>();
public class links
{
public string url { get; set; }
public string title { get; set; }
public string description { get; set; }
public int place { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
结果在代码中获取它的值.唯一的Place属性可能会出现相同的记录,但其他属性是相同的.我想省略在网址,标题和说明中具有重复值的重复记录.我写了这段代码,但没有改变:
final_results = results .GroupBy(n => n.url).Select(g => g.FirstOrDefault()).ToList();
Run Code Online (Sandbox Code Playgroud)
但当我将我的重复器绑定到这个新列表时,没有任何改变.我怎么能省略这个重复值?