Consigue el segundo nodo con la misma clase.

c# html-agility-pack

Pregunta

Estoy teniendo problemas para analizar algunos nodos con HtmlAgilityPack.

Aquí está el problema:

Tengo muchos nodos con la clase "prueba", pero quiero seleccionar el segundo.

Si hago algo como esto:

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

Devuelve el valor que esperaba ... pero si intento obtener el segundo, devuelve un valor nulo ... pero la pregunta es ... ¿por qué?

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

Esta línea de código me los trae a todos, y estoy realmente confundido ahora, porque usando position () = 1 la lib tenía que devolver solo el primero, ¿verdad?

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

¡Gracias chicos!

Respuesta aceptada

El código correcto sería

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

El código que usaste selecciona el primer o segundo elemento de prueba dentro de su elemento principal, no el primer o segundo elemento en la secuencia de todos los elementos de font de la test de clase.



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow