C# Html Agility Pack ( SelectSingleNode )

30,428

The reason your code doesn't work is because there is JavaScript on the page that is actually writing out the <h1 id='profile_name'> tag, so if you're requesting the page from a User Agent (or via AJAX) that doesn't execute JavaScript then you won't find the element.

I was able to get my own name using the following selector:

string name = 
    doc.DocumentNode.SelectSingleNode("//a[@id='navAccountName']").InnerText;
Share:
30,428
josh
Author by

josh

Updated on August 04, 2022

Comments

  • josh
    josh over 1 year

    I'm trying to parse this field, but can't get it to work. Current attempt:

    var name = doc.DocumentNode.SelectSingleNode("//*[@id='my_name']").InnerHtml;
    
    
    <h1 class="bla" id="my_name">namehere</h1>
    

    Error: Object reference not set to an instance of an object.

    Appreciate any help.

    @John - I can assure that the HTML is correctly loaded. I am trying to read my facebook name for learning purposes. Here is a screenshot from the Firebug plugin. The version i am using is 1.4.0.

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

    I guess the problem is that profile_name is a child node or something, that's why I'm not able to read it?

  • André Silva
    André Silva almost 12 years
    This should be marked as an answer. This actually helped me. Dynamic generated code don't work in this dll.