Html Agility Pack: SelectSingleNode y XPath no están disponibles en la plataforma Xamarin Forms

html-agility-pack xamarin xamarin.forms xpath

Pregunta

Necesito encontrar alguna forma de encontrar un objeto desde un archivo html usando los selectores Xpath o Html.

Dado que los selectores no son compatibles con Html Agility Pack, estoy tratando de usar XPath.

Desafortunadamente, parece que SelectSingleNode (cadena somexpathvalue) no está disponible en Xamarin Forms. HtmlNode no contiene una definición de él.

Encontré en NuGet que no tengo instalado System.Xml.XPath. Cuando trato de hacerlo, veo un error:

Código de gravedad Descripción Proyecto Archivo Supresión de línea Error de estado No se pudo instalar el paquete 'System.Xml.XPath 4.0.0'. Está intentando instalar este paquete en un proyecto que apunta a '.NETPortable, Version = v4.5, Profile = Profile111', pero el paquete no contiene referencias de ensamblaje ni archivos de contenido que sean compatibles con ese marco. Para más información, contacte al autor del paquete. 0

¿Hay alguna manera de que pueda utilizar SelectSingleNode sin System.Xml.Xpath?

Respuesta popular

No. El soporte de Hathml Agility Pack (HAP) XPath se basa en la implementación de .NET XPath que está disponible en System.Xml.XPath *, y System.Xml.XPath en sí no tiene una versión para Xamarin.Forms.

Sus opciones podrían ser implementar funcionalidades que se basen en XPath en los proyectos específicos de la plataforma correspondiente (suponiendo que actualmente utiliza el enfoque de proyecto portátil de Xamarin.Forms), o usar la API LINQ de HAP en lugar de XPath para realizar la consulta. Creo que la mayoría, si no todas, las consultas que puede escribir en XPath se pueden traducir a LINQ.

*) Respuesta del autor de HAP: https://stackoverflow.com/a/15941723/2998271

**) Ejemplo de conversión de XPath a LINQ: HtmlAgilityPack usando Linq para la plataforma Windows Phone 8.1




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué