C# 如何删除所选节点的所有子节点-html agility pack

C# 如何删除所选节点的所有子节点-html agility pack,c#,wpf,html-agility-pack,C#,Wpf,Html Agility Pack,好的,我想删除这个特定节点的所有子节点 这里是节点源代码 <div class="Price fs30 clr8"> 7, <span class="PriceCurrency">73 TL <span class="kdv">KDV Dahil</span> </span> <div class="SaleDiv"> %15 <span>İndirim<

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

这里是节点源代码

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

7.
73铊
达希尔
%15
İndirim
所以我想删除所有span子节点和div子节点——实际上是节点下的所有子节点

删除这些子节点后,我应该将
7,
作为所选节点的
innertext

我非常想知道答案


c#.net 4.5 wpf

如果您想在外部
中只保留文本节点,则可以使用星形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);
var html=@”
7.
73铊
达希尔
%15
İndirim
";
var doc=新的HtmlDocument();
doc.LoadHtml(html);
var div=doc.DocumentNode.SelectSingleNode(//div[@class='Price fs30 clr8']);
foreach(div.SelectNodes(“*”)中的HtmlNode节点)
{
node.Remove();
}
var innerText=div.innerText.Trim();
Console.WriteLine(内部文本);