2014-07-14 4 views
0

주어진 웹 사이트에서 일부 HTML 노드를 선택하기 위해 HAP을 구현하는 다음 C# 문을 고려하십시오. 주어진 페이지에HtmlAgilityPack 특정 노드 수 선택

var nodes = page.DocumentNode.SelectNodes("//ul[contains(@class,'relatedProductsGrid')]//div[@class='product']//a"); 

는 선택기는 페이지 20 노드를 반환하고 나는 그것을 잡고 노드의 양을 제한하고 싶었 경우,이 어떻게 할 것입니다 내 질문?

본질적으로 "20 개가 아닌 3 개의 노드를 선택"하지만 가능한 가장 깨끗한 방법으로, 단순히 요청에 사용할 수있는 LINQ 표현식이 있습니까?

덕분에 모든

+2

단순히'.Take (3)'끝에 추가? – jessehouwing

답변

0

당신은 다음과 같은 방법으로, 항목 수를 제한하기 위해 XPath에있는 position() 기능을 사용할 수 :

//ul[contains(@class,'relatedProductsGrid')]//div[@class='product']//a[position() >= 1 and position() < 4]