C # Html Agility Pack (SelectSingleNode)

c# html html-agility-pack parsing

Pregunta

Estoy tratando de analizar este campo, pero no puedo hacerlo funcionar. Intento actual:

var name = doc.DocumentNode.SelectSingleNode("//*[@id='my_name']").InnerHtml;


<h1 class="bla" id="my_name">namehere</h1>

Error: la referencia de objeto no está establecida en una instancia de un objeto.

Aprecio cualquier ayuda.

@John - Puedo asegurar que el HTML está correctamente cargado. Estoy tratando de leer mi nombre de facebook para fines de aprendizaje. Aquí hay una captura de pantalla del complemento Firebug. La versión que estoy usando es 1.4.0.

http://i54.tinypic.com/kn3wo.jpg

Supongo que el problema es que profile_name es un nodo secundario o algo así, ¿por eso no puedo leerlo?

Respuesta popular

La razón por la que su código no funciona es porque hay JavaScript en la página que en realidad está escribiendo la etiqueta <h1 id='profile_name'> , por lo que si solicita la página a un Agente de Usuario (o a través de AJAX) que no ejecuta JavaScript, entonces no encontrarás el elemento.

Pude obtener mi propio nombre usando el siguiente selector:

string name = 
    doc.DocumentNode.SelectSingleNode("//a[@id='navAccountName']").InnerText;


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué