如何使用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>一些text2 </p>我需要得到html include这样的选择器元素

<div class="bla">

<p>一些文字</p>

</div>

帮帮我)))

一般承认的答案

您可以继续使用//div[@class='bla']选择器并从OuterHtml属性获取相应div的HTML标记,例如:

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
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因