Как удалить все дочерние узлы выбранного узла - 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 - фактически все дети, находящиеся под узлом

После удаления этих детей я должен получить 7, как innertext выбранного узла

Ty очень много для ответов

c # .net 4.5 wpf

Принятый ответ

Если вы хотите хранить только текстовые узлы во внешнем <div> , вы можете выбрать все дочерние узлы html, используя селектор Star XPath ( * ), и удалить их. Вот пример в консольном приложении:

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);


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow