Как получить все дочерние узлы с пакетом гибкости html и xpath

html-agility-pack xml xpath

Вопрос

У меня есть XML-документ, который я пытаюсь проанализировать с помощью HTML Agility Pack с использованием XPath. Это мой код для получения элементов:

HtmlDocument htmldoc = new HtmlDocument();
htmldoc.Load(fileName);
HtmlNodeCollection nodes = htmldoc.DocumentNode.SelectNodes("feed/l");

Это мой XML-документ

<?xml version="1.0" encoding="UTF-8"?>
<feed>
<tm>5701</tm>
<tp>1141</tp>
<pnr>1</pnr>
<l type="TEXT">
<ca>
<c id="21">JA</c>
</ca>
<pts>
<pt id="5">DO</pt>
</pts>
<od>MA 99</od>
<osd>2014-02-21</osd>
<od>2014-02-22</od>
<cu>url</cu>
<ip>ip</ip>
<ai>3184</ai>
<an>com</an>
<n id="1">US n</n>
</l>
</feed>

Я пытаюсь получить все узлы, которые являются дочерними элементами l и их детьми, но мой XPath возвращает узлы с l в качестве коллекции, но дети имеют значение NULL. Узлы, которые я ищу, сгруппированы по l - это

 <ca>
<c id="21">JA</c>
</ca>
<pts>
<pt id="5">DO</pt>
</pts>
<od>MA 99</od>
<osd>2014-02-21</osd>
<od>2014-02-22</od>
<cu>url</cu>
<ip>ip</ip>
<ai>3184</ai>
<an>com</an>
<n id="1">US n</n>

но детей нет. Пожалуйста, помогите моему XPath, кажется, правильно.

Популярные ответы

Ваш XPath должен быть

feed/l/*

так как вам нужен элемент children из l . Поэтому в вашем коде должно быть

HtmlNodeCollection nodes = htmldoc.DocumentNode.SelectNodes("feed/l/*");


Related

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