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

c# html-agility-pack

Вопрос

У меня есть следующий вид xml / html

<root>
<p1>
    <l1>
        <a>something</a>
        <a>something</a>
        <a>something</a>
        <a>something</a>
    </l1>
    <l1>
        <a>something</a>
        <a>something</a>
        <a>something</a>
        <a>something</a>
    </l1>
</p1>
</root>

Я хочу выбрать коллекцию тегов l1 и для каждого тега l1 я хочу выбрать все теги «a» для текущего тега l1. как мне это сделать??

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

HtmlAgilityPack использует селектора XPath для выбора узлов.

Для вашей проблемы это будет работать:

HtmlDocument doc = new HtmlDocument();
doc.Load(@"test.html");

var l1s = doc.DocumentNode.SelectNodes("//l1");
foreach (var item in l1s)
{
    var links = item.SelectNodes("a");
}

Обратите внимание, что я использовал селектор XPath, который будет захватывать все элементы l1 в документе (используя ведущий // ), чтобы более конкретно вы могли:

var l1s = doc.DocumentNode.SelectNodes("root/p1/l1");


Related

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