Cómo eliminar todos los nodos secundarios del nodo seleccionado - html-agility-pack

c# html-agility-pack wpf

Pregunta

Muy bien, quiero eliminar todos los nodos hijos de este nodo en particular

Aquí el código fuente del nodo

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

Así que quiero eliminar a todos los niños de rango y niños div - en realidad a todos los niños que estén debajo del nodo

Después de eliminar estos hijos, debería obtener 7, como texto innertext del nodo seleccionado

Muchas gracias por las respuestas.

c # .net 4.5 wpf

Respuesta aceptada

Si quería mantener solo los nodos de texto dentro de <div> exterior, puede seleccionar todos los nodos html secundarios con el selector star XPath ( * ) y eliminarlos. Aquí hay un ejemplo en la aplicación de consola:

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

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué