XPath 선택 노드

.net c# html-agility-pack

문제

나는 가지고있다:

<div id="foo">
<a href="/xxx.php"> xx </a>
<a href="/xy.php"> xy </a>
<a href="/uid.php?id=123"> 123 </a>
<a href="/uid.php?id=344"> 344 </a>
</div>

htmlAgilityPack을 사용하여 href에 'id'가 포함 된 항목 만 선택하는 방법은 무엇입니까?

출력 :

 <a href="/uid.php?id=123"> 123 </a>
    <a href="/uid.php?id=344"> 344 </a>

고마워, 고급.

수락 된 답변

다음 XPath 식은 모든 선택해야 이 요소 a href 텍스트 "ID"를 포함 태그를.

var xpathExpression = "//a[contains(@href, 'id')]";

다음 코드를 사용하여 href 속성에서 id가있는 태그를 선택할 수있었습니다.

var htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(
  @"<div id=""foo"">
    <a href=""/xxx.php""> xx </a>
    <a href=""/xy.php""> xy </a> 
    <a href=""/uid.php?id=123""> 123 </a>
    <a href=""/uid.php?id=344""> 344 </a>
</div>");
var aTags = htmlDoc.DocumentNode.SelectNodes("//a[contains(@href, 'id')]");
foreach(var aTag in aTags)
Console.WriteLine(aTag.OuterHtml);



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