Ottieni il secondo nodo con la stessa classe

c# html-agility-pack

Domanda

Sto avendo qualche problema nell'analizzare alcuni nodi con HtmlAgilityPack.

Ecco il problema:

Ho molti nodi con il "test" di classe, ma voglio selezionare il secondo.

Se faccio qualcosa del genere:

html.DocumentNode.SelectSingleNode ("//font[@class='test' and position()=1]")

Restituisce il valore che mi aspettavo ... ma se provo a ottenere il secondo restituisce null ... ma la domanda è .. perché?

html.DocumentNode.SelectSingleNode ("//font[@class='test' and position()=1]")

Questa linea di codice mi porta tutti loro, e ora sono davvero confuso, perché usando position () = 1 la lib doveva restituire solo la prima, giusto?

html.DocumentNode.SelectSingleNode ("//font[@class='test' and position()=1]")

Grazie ragazzi!

Risposta accettata

Il codice corretto sarebbe

html.DocumentNode.SelectSingleNode ("(//font[@class='test'])[2]")

Il codice che hai usato seleziona il primo o il secondo elemento test all'interno del suo elemento padre, non il primo o il secondo elemento nella sequenza di tutti gli elementi font del test di classe.




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é