我正在尝试解析这个字段,但无法让它工作。目前的尝试:
var name = doc.DocumentNode.SelectSingleNode("//*[@id='my_name']").InnerHtml;
<h1 class="bla" id="my_name">namehere</h1>
错误:对象引用未设置为对象的实例。
感谢任何帮助。
@John - 我可以确保HTML已正确加载。我正在尝试阅读我的Facebook名称以用于学习目的。这是Firebug插件的截图。我使用的版本是1.4.0。
http://i54.tinypic.com/kn3wo.jpg
我想问题是profile_name是一个子节点或什么的,这就是为什么我无法读取它?
您的代码不起作用的原因是因为页面上的JavaScript实际上写出了<h1 id='profile_name'>
标记,所以如果您从用户代理(或通过AJAX)请求页面不执行JavaScript然后你将找不到该元素。
我可以使用以下选择器获取自己的名字:
string name =
doc.DocumentNode.SelectSingleNode("//a[@id='navAccountName']").InnerText;