HtmlAgilityPack - выбор нескольких узлов

html-agility-pack linq windows-phone-8.1

Вопрос

Поскольку официального выпуска HtmlAgilityPack для windows phone 8.1 or WinRT , ссылка на ручную dll не позволяет вызвать SelectNodes() где я могу передать параметр XPATH .

Я ищу аналогичный запрос Linq, с помощью которого я могу выбрать несколько узлов в зависимости от имени класса узла. В Plain English я хочу сохранить все узлы в HtmlNodeCollection где узел начинается с div а class этого div - XXX.

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

Переведено из вашего предложения в выражение LINQ HtmlAgilityPack:

var result = doc.DocumentNode
                .Descendants()
                .Where(o => o.Name.StartsWith("div") 
                                && 
                            o.GetAttributeValue("class", "") == "XXX");

или просто укажите, что вас интересуют только узлы <div> :

var result = doc.DocumentNode
                .Descendants("div")
                .Where(o => o.GetAttributeValue("class", "") == "XXX");

Выше возвращает IEnumerable<HtmlNode> вместо HtmlNodeCollection , но это не существенно ИМХО.



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему