Come selezionare gli elementi usando il pacchetto agilità HTML include l'elemento selettore?

c# html-agility-pack

Domanda

In che modo select element by class include questo selettore? Esempio:

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

se l'uso

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

allora otteniamo solo <p> Some Text1 </p> e <p> Some text2 </p> Ho bisogno di ottenere html include l'elemento selettore come questo

<div class="bla">

<p> Qualche testo </p>

</div>

Aiuto)))

Risposta accettata

Puoi continuare a utilizzare il selector //div[@class='bla'] e ottenere il markup HTML dei div corrispondenti dalla proprietà OuterHtml , ad esempio:

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

Demo di Dotnetfiddle

produzione :

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

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


Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché