Html Agility Pack: SelectSingleNode и XPath недоступны на платформе Xamarin Forms

html-agility-pack xamarin xamarin.forms xpath

Вопрос

Мне нужно найти способ найти объект из html-файла с помощью Xpath или Html Selectors.

Поскольку селектора не поддерживаются в Html Agility Pack, я пытаюсь использовать XPath.

К сожалению, похоже, что SelectSingleNode (string somexpathvalue) недоступен в Xamarin Forms. HtmlNode не содержит определения.

Я нашел в NuGet, что у меня нет System.Xml.XPath. Когда я пытаюсь это сделать, я вижу ошибку:

Код степени серьезности Описание Ошибка состояния подавления строки файла проекта Не удалось установить пакет «System.Xml.XPath 4.0.0». Вы пытаетесь установить этот пакет в проект, который предназначен для «.NETPortable, Version = v4.5, Profile = Profile111», но пакет не содержит ссылок на сборки или файлов содержимого, совместимых с этой инфраструктурой. Для получения дополнительной информации свяжитесь с автором пакета. 0

Можно ли использовать SelectSingleNode без System.Xml.Xpath?

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

Нет. Поддержка XPath Agility Pack (HAP) XPath основана на реализации .NET XPath, которая доступна в System.Xml.XPath * и System.Xml.XPath сама по себе не имеет версии для Xamarin.Forms.

Ваши варианты могут заключаться в реализации функциональных возможностей, которые полагаются на XPath в соответствующих проектах на платформе (при условии, что вы в настоящее время используете портативный подход к проекту Xamarin.Forms), или используйте LINQ API HAP вместо XPath для выполнения запроса. Я считаю, что большинство, если не все, запрос, который вы можете написать в XPath, можно перевести в LINQ.

*) Ответ автора HAP: https://stackoverflow.com/a/15941723/2998271

**) Пример XPath для перевода LINQ: HtmlAgilityPack с использованием Linq для платформы Windows Phone 8.1



Related

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