So entfernen Sie alle untergeordneten Knoten des ausgewählten Knotens - html-agility-pack

c# html-agility-pack wpf

Frage

Okay, ich möchte alle Kinderknoten dieses bestimmten Knotens entfernen

Hier der Quellcode des Knotens

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

Also ich möchte alle Span Kinder und Div Kinder entfernen - eigentlich alle Kinder was auch immer unter dem Knoten ist

Nachdem ich diese Kinder entfernt habe, sollte ich 7, als einen innertext des ausgewählten Knotens erhalten

Ty viel für Antworten

c # .net 4.5 wpf

Akzeptierte Antwort

Wenn Sie nur Textknoten innerhalb des äußeren <div> , können Sie alle untergeordneten HTML-Knoten mit dem Stern-XPath-Selektor ( * ) auswählen und entfernen. Hier ist ein Beispiel in der Konsolenanwendung:

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


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum