Pack d'agilité C # Html (SelectSingleNode)

c# html html-agility-pack parsing

Question

J'essaie d'analyser ce champ, mais je ne peux pas le faire fonctionner. Tentative en cours:

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


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

Erreur: La référence à l'objet n'est pas définie sur une instance d'un objet.

Appréciez toute aide.

@ John - Je peux vous assurer que le code HTML est correctement chargé. J'essaie de lire mon nom facebook à des fins d'apprentissage. Voici une capture d'écran du plugin Firebug. La version que j'utilise est 1.4.0.

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

Je suppose que le problème est que nom_profil est un nœud enfant ou quelque chose du genre, c'est pourquoi je ne suis pas capable de le lire?

Réponse populaire

La raison pour laquelle votre code ne fonctionne pas, c'est qu'il y a du JavaScript sur la page qui écrit la <h1 id='profile_name'> , donc si vous demandez la page à un agent d'utilisateur (ou via AJAX), n'exécute pas JavaScript, vous ne trouverez pas l'élément.

J'ai pu obtenir mon propre nom en utilisant le sélecteur suivant:

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


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow