Получить второй узел с тем же классом

c# html-agility-pack

Вопрос

У меня возникли проблемы с анализом некоторых узлов с помощью HtmlAgilityPack.

Вот проблема:

У меня много узлов с классом «test», но я хочу, чтобы selct второй.

Если я сделаю что-то вроде этого:

html.DocumentNode.SelectSingleNode ("//font[@class='test' and position()=1]")

Он возвращает значение, которое я ожидал ... но если я попытаюсь получить второй, он вернет null ... но вопрос в том, почему?

html.DocumentNode.SelectSingleNode ("//font[@class='test' and position()=2]")

Эта строка кода приносит мне все из них, и я действительно путаюсь сейчас, потому что, используя position () = 1, lib должен был вернуть только первый, не так ли?

html.DocumentNode.SelectNodes ("//font[@class='test' and position()=1]")

Спасибо, парни!

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

Правильный код будет

html.DocumentNode.SelectSingleNode ("(//font[@class='test'])[2]")

Используемый вами код выбирает первый или второй тестовый элемент в его родительском элементе, а не первый или второй элемент в последовательности всех элементов font test класса.



Related

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