선택한 노드의 모든 자식 노드를 제거하는 방법 - html-agility-pack

c# html-agility-pack wpf

문제

좋아,이 특정 노드의 모든 자식 노드를 제거하고 싶습니다.

여기 노드 소스 코드

<div class="Price fs30 clr8">
   7,
   <span class="PriceCurrency">73 TL
   <span class="kdv">KDV Dahil</span>
   </span>
   <div class="SaleDiv">
      %15
      <span>Ä°ndirim</span>
   </div>
</div>

그래서 나는 모든 span 아이들과 div 아이들을 제거하고 싶다.

이 아이들을 제거한 후에 나는 선택된 노드의 innertext 로서 7, 을 얻어야한다.

타이 대답에 대단히

c # .net 4.5 wpf

수락 된 답변

텍스트 노드 만 바깥 쪽 <div> 안에 넣으려는 경우 star XPath 선택기 ( * )를 사용하여 모든 html 하위 노드를 선택하고 제거 할 수 있습니다. 다음은 콘솔 애플리케이션의 예입니다.

var html = @"<div class=""Price fs30 clr8"">
   7,
   <span class=""PriceCurrency"">73 TL
   <span class=""kdv"">KDV Dahil</span>
   </span>
   <div class=""SaleDiv"">
      %15
      <span>Ä°ndirim</span>
   </div>
</div>";
var doc = new HtmlDocument();
doc.LoadHtml(html);
var div = doc.DocumentNode.SelectSingleNode("//div[@class='Price fs30 clr8']");
foreach (HtmlNode node in div.SelectNodes("*"))
{
    node.Remove();
}
var innerText = div.InnerText.Trim();
Console.WriteLine(innerText);



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