Как выбрать элементы с помощью пакета гибкости HTML, включая элемент селектора?

c# html-agility-pack

Вопрос

Как выбрать элемент по классу, включив этот селектор? Пример:

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

если использование

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

то мы получаем только <p> Some Text1 </p> и <p> Some text2 </p> Мне нужно, чтобы html включал селекторный элемент, подобный этому

<div class="bla">

<p> Некоторые тексты </p>

</div>

Помогите)))

Принятый ответ

Вы можете продолжать использовать //div[@class='bla'] селектор и получить разметку HTML соответствующего div s из свойства OuterHtml , например:

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

вывод :

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

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


Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему