Html Agility Pack: SelectSingleNode e XPath non sono disponibili sulla piattaforma Xamarin Forms

html-agility-pack xamarin xamarin.forms xpath

Domanda

Devo trovare un modo per trovare l'oggetto dal file html usando Xpath o Html Selectors.

Poiché i selettori non sono supportati in Html Agility Pack, sto cercando di utilizzare XPath.

Sfortunatamente sembra che SelectSingleNode (string somexpathvalue) non sia disponibile su Xamarin Forms. HtmlNode non contiene una definizione di esso.

Ho trovato in NuGet che non ho installato System.Xml.XPath. Quando provo a farlo, vedo un errore:

Codice di gravità Descrizione Errore di stato della riga di eliminazione del file di progetto Errore Impossibile installare il pacchetto 'System.Xml.XPath 4.0.0'. Stai tentando di installare questo pacchetto in un progetto destinato a ".NETPortable, Version = v4.5, Profile = Profile111", ma il pacchetto non contiene riferimenti all'assembly o file di contenuti compatibili con tale framework. Per ulteriori informazioni, contattare l'autore del pacchetto. 0

C'è un modo per utilizzare SelectSingleNode senza System.Xml.Xpath?

Risposta popolare

No. Il supporto XPath di Html Agility Pack (HAP) si basa sull'implementazione .NET XPath disponibile in System.Xml.XPath * e System.Xml.XPath non ha una versione per Xamarin.Forms.

Le opzioni potrebbero essere implementare funzionalità che si basano su XPath nei progetti specifici della piattaforma corrispondente (supponendo che si utilizzi attualmente l'approccio del progetto Xamarin.Forms portatile) oppure utilizzare LINQ API di HAP anziché XPath per eseguire la query. Credo che la maggior parte, se non tutte, la query che è possibile scrivere in XPath possa essere tradotta in LINQ.

*) Risposta dell'autore di HAP: https://stackoverflow.com/a/15941723/2998271

**) Esempio di traduzione da XPath a LINQ: HtmlAgilityPack che utilizza Linq per la piattaforma Windows Phone 8.1



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché