Pack d'agilité HTML: SelectSingleNode et XPath ne sont pas disponibles sur la plate-forme Xamarin Forms

html-agility-pack xamarin xamarin.forms xpath

Question

J'ai besoin de trouver un moyen de trouver un objet à partir d'un fichier html à l'aide de sélecteurs Xpath ou html.

Étant donné que les sélecteurs ne sont pas pris en charge dans le pack d'agilité HTML, j'essaie d'utiliser XPath.

Malheureusement, il semble que SelectSingleNode (string somexpathvalue) ne soit pas disponible sur Xamarin Forms. HtmlNode ne contient pas de définition.

J'ai découvert dans NuGet que System.Xml.XPath n'est pas installé. Quand j'essaie de le faire, je vois une erreur:

Code de gravité Description Erreur d'état de suppression de lignes de fichier de projet Impossible d'installer le package 'System.Xml.XPath 4.0.0'. Vous essayez d'installer ce package dans un projet qui cible ".NETPortable, Version = v4.5, Profile = Profile111", mais le package ne contient aucune référence d'assembly ni fichier de contenu compatible avec ce cadre. Pour plus d'informations, contactez l'auteur du package. 0

Puis-je utiliser SelectSingleNode sans System.Xml.Xpath?

Réponse populaire

Non. Html Agility Pack (HAP) La prise en charge de XPath s'appuie sur l'implémentation .NET XPath disponible dans System.Xml.XPath *, et System.Xml.XPath ne possède pas de version pour Xamarin.Forms.

Vos options peuvent être d'implémenter des fonctionnalités qui s'appuient sur XPath dans les projets spécifiques à la plate-forme correspondante (en supposant que vous utilisiez actuellement l'approche de projet portable Xamarin.Forms) ou d'utiliser l'API LINQ de HAP au lieu de XPath pour effectuer la requête. Je crois que la plupart, sinon toutes les requêtes que vous pouvez écrire dans XPath peuvent être traduites en LINQ.

*) Réponse de l'auteur de HAP: https://stackoverflow.com/a/15941723/2998271

**) Exemple de traduction de XPath vers LINQ: HtmlAgilityPack utilisant Linq pour la plate-forme Windows Phone 8.1




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi