Wie wählt man Elemente aus, die das HTML-Agilitätspaket verwenden? Include selector element?

c# html-agility-pack

Frage

Wie wählen Element für Klasse diesen Selektor aus? Beispiel:

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

wenn verwenden

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

dann bekommen wir nur <p> Etwas Text1 </p> und <p> Irgendein text2 </p> Ich brauche HTML include selector Element wie folgt

<div class="bla">

<p> Etwas Text </p>

</div>

Hilfe)))

Akzeptierte Antwort

Sie können weiterhin den //div[@class='bla'] Selektor verwenden und erhalten HTML-Markup der entsprechenden div s aus der OuterHtml Eigenschaft, zum Beispiel:

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

Ausgabe :

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

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



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