如何从子节点获取价值,例如href值,并使用具有父节点类名称的html agility pack将它们添加到列表中?
我尝试了此代码,但失败了
var pagedivs = htmlDocument.DocumentNode.SelectNodes("div").Where(e => e.GetAttributeValue("class", "").Equals("pagination"))
.Where(k => k.Descendants().Any(t => t.Name == "li")).ToList();
网络中的HTML代码:
<div class="pagination">
<ul class="pagination-list">
<li class="hidden-phone current"><a title="1" href="" class="pagenav">1</a></li>
<li class="hidden-phone"><a title="2" href="/collections/remarkable-products?page=2" class="pagenav">2</a></li>
<li><a title="Next page" href="/collections/remarkable-products?page=2" class="pagenav"><i class="fa fa-chevron-right"></i></a></li>
</ul>
<input type="hidden" name="limitstart" value="0">
</div>
答案 0 :(得分:1)
要具体获得href
值,您可以执行以下操作:
var links = document.DocumentNode
.Descendants("div") // 1
.Where(div => div.HasClass("pagination")) // 2
.First() // 3
.Descendants("a") // 4
.Select(a => a.GetAttributeValue("href", "")) // 5
.Where(link => !string.IsNullOrWhiteSpace(link)) // 6
.ToList();
div
。这包括和孩子的孩子div
类的pagination
div
a
s a
的{{1}}值的值