HtmlAgilityPack에 의한 속성 값 얻기

c# html-agility-pack

문제

HtmlAgilityPack에 의해 속성 값을 얻고 싶습니다. HTML 코드 :

<link href="style.css">
<link href="anotherstyle.css">
<link href="anotherstyle2.css">
<link itemprop="thumbnailUrl" href="http://image.jpg">
<link href="anotherstyle5.css">
<link href="anotherstyle7.css">

나는 마지막 href 속성을 얻고 싶다.

내 C # 코드 :

<link href="style.css">
<link href="anotherstyle.css">
<link href="anotherstyle2.css">
<link itemprop="thumbnailUrl" href="http://image.jpg">
<link href="anotherstyle5.css">
<link href="anotherstyle7.css">

그러나이 코드는 첫 번째 href 값을 반환합니다.

인기 답변

XPath 다음에 href 속성이 정의 된 link 요소를 선택 link . 그런 다음 링크에서 마지막 항목을 선택합니다.

var link = doc.DocumentNode.SelectNodes("//link[@href]").LastOrDefault();
// you can also check if link is not null
var href = link.Attributes["href"].Value; // "anotherstyle7.css"

last() XPath 연산자를 사용할 수도 있습니다.

var link = doc.DocumentNode.SelectNodes("//link[@href]").LastOrDefault();
// you can also check if link is not null
var href = link.Attributes["href"].Value; // "anotherstyle7.css"

UPDATE : itemprophref 속성을 모두 가지고있는 마지막 요소를 얻고 싶다면 XPath //link[@href and @itemprop][last()] 또는 //link[@href and @itemprop] 사용하면된다. 첫 번째 접근 방식으로 이동하십시오.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.