как получить дочерний узел с пакетом «html agility pack»

c# html-agility-pack

Вопрос

как получить дочерний узел с пакетом гибкости html?

var Webget = new HtmlWeb();
var doc = Webget.Load(url);
HtmlNode elementbyId = doc.GetElementbyId("nome");

Мне просто нужно взять внутренний узел в <div id="nome">

html:

<div id="nome">
    <p> <!-- this node --> 
    <strong></strong>
    </p>
    <br/><!-- this node --> 
    <span><!-- this node --> 
    <strong></strong>
    </span>
    <p><!-- this node --> 
    <span></span>
    </p>
</div>

Обновить :

Я написал следующий код, но это неправильно.

var nodes = elementbyId.Descendants();

этот код Получить все элементы внутри <div id="nome">

Есть ли способ решить проблему? Понятия не имею

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

Используйте SelectNodes("*") вместо Descendants() чтобы получить прямые дочерние элементы текущего элемента. Вот рабочий пример:

var html = @"<div id='nome'>
    <p> <!-- this node --> 
    <strong></strong>
    </p>
    <br/><!-- this node --> 
    <span><!-- this node --> 
    <strong></strong>
    </span>
    <p><!-- this node --> 
    <span></span>
    </p>
</div>";
var doc = new HtmlDocument();
doc.LoadHtml(html);
HtmlNode elementbyId = doc.GetElementbyId("nome");
var nodes = elementbyId.SelectNodes("*");
foreach (var htmlNode in nodes)
{
    Console.WriteLine(htmlNode.OuterHtml);
    Console.WriteLine("-----------------------");
}

Демо-версия Dotnetfiddle

вывод :

<p> <!-- this node -->
    <strong></strong>
    </p>
-----------------------
<br/>
-----------------------
<span><!-- this node -->
    <strong></strong>
    </span>
-----------------------
<p><!-- this node -->
    <span></span>
    </p>
-----------------------


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow