如何删除选定节点的所有子节点-html敏捷性包

本文关键字:子节点 -html 节点 何删除 删除 | 更新日期: 2023-09-27 18:20:39

好的,我想删除这个特定节点的所有子节点

这里的节点源代码

<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

如何删除选定节点的所有子节点-html敏捷性包

如果只想在外部<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);