C # HTML Agility Pack (SelectSingleNode)

c# html html-agility-pack parsing

Frage

Ich versuche dieses Feld zu analysieren, aber ich kann es nicht zur Arbeit bringen. Aktueller Versuch:

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


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

Fehler: Objektreferenz wurde nicht auf eine Instanz eines Objekts festgelegt.

Schätze jede Hilfe.

@John - Ich kann versichern, dass das HTML korrekt geladen ist. Ich versuche, meinen Facebook-Namen für Lernzwecke zu lesen. Hier ist ein Screenshot vom Firebug-Plugin. Die Version, die ich verwende, ist 1.4.0.

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

Ich schätze das Problem ist, dass profile_name ein Kindknoten oder etwas ist, deshalb kann ich es nicht lesen?

Beliebte Antwort

Der Grund dafür, dass Ihr Code nicht funktioniert, ist, dass auf der Seite JavaScript vorhanden ist, das das Tag <h1 id='profile_name'> Wenn Sie also die Seite von einem User Agent (oder über AJAX) anfordern führt JavaScript nicht aus, dann finden Sie das Element nicht.

Ich konnte meinen eigenen Namen mit dem folgenden Selektor bekommen:

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


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum