Comment sélectionner des éléments avec HTML agility pack include selector element?

c# html-agility-pack

Question

Comment sélectionner élément par classe ce sélecteur? Exemple:

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

si utilisation

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

alors nous obtenons uniquement <p> Some Text1 </p> et <p> Some text2 </p>

<div class="bla">

<p> Du texte </p>

</div>

Aidez-moi)))

Réponse acceptée

Vous pouvez continuer à utiliser le sélecteur //div[@class='bla'] et obtenir le balisage HTML de la propriété div s correspondante à partir de la propriété OuterHtml , par exemple:

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

Démo Dotnetfiddle

sortie:

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

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



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi