如何刪除所選節點的所有子節點 - 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>保留文本節點,則可以使用星型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);


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因