¿Cómo seleccionar elementos usando el paquete de agilidad HTML incluye el elemento selector?

c# html-agility-pack

Pregunta

¿Cómo seleccionar el elemento por clase incluye este selector? Ejemplo:

<div class="bla">
  <p>Some text1</p>
</div>
<div class="bla">
  <p>Some text2</p>
</div>

si se usa

 html.DocumentNode.SelectNodes("//div[@class='bla']")

luego solo obtenemos <p> Some Text1 </p> y <p> Some text2 </p> Necesito obtener html include elemento selector como este

<div class="bla">

<p> Un poco de texto </p>

</div>

ayuda)))

Respuesta aceptada

Puede seguir utilizando el selector //div[@class='bla'] y obtener el marcado HTML de las div s correspondientes de la propiedad OuterHtml , por ejemplo:

var html = @"<div>
    <div class='bla'>
      <p>Some text1</p>
    </div>
    <div class='bla'>
      <p>Some text2</p>
    </div>
</div>";
var doc = new HtmlDocument();
doc.LoadHtml(html);

var nodes = doc.DocumentNode.SelectNodes("//div[@class='bla']");
foreach(HtmlNode node in nodes)
{
    Console.WriteLine(node.OuterHtml);
    Console.WriteLine();
}

Dotnetfiddle Demo

salida:

<div class='bla'>
      <p>Some text1</p>
    </div>

<div class='bla'>
      <p>Some text2</p>
    </div>



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é