HtmlAgilityPack - Selezione di più nodi

html-agility-pack linq windows-phone-8.1

Domanda

Poiché non esiste alcuna versione ufficiale di HtmlAgilityPack per windows phone 8.1 or WinRT , facendo riferimento manualmente alla DLL non è possibile chiamare la funzione SelectNodes() cui è possibile passare un XPATH come parametro.

Sto cercando una query Linq simile con la quale posso selezionare più nodi a seconda del nome della classe del nodo. In Plain English voglio archiviare tutti i nodi in un HtmlNodeCollection dove il nodo inizia con div e la class di quel div è XXX.

Risposta accettata

Tradotto dalla tua frase nell'espressione LINQ di HtmlAgilityPack:

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

o menzioni semplicemente che sei interessato solo ai nodi <div> :

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

Sopra restituisce IEnumerable<HtmlNode> invece di HtmlNodeCollection , ma ciò non è IMHO significativo.




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é