C# Html 敏捷包 (SelectSingleNode)
我正在尝试解析该字段,但无法使其工作。当前尝试:
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 是子节点或其他东西,这就是我无法读取它的原因?
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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您的代码不起作用的原因是页面上的 JavaScript 实际上写出了
标记,因此如果您从如果用户代理(或通过 AJAX)不执行 JavaScript,那么您将找不到该元素。
我可以使用以下选择器获得自己的名字:
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:
试试这个:
Try this:
("//a[@href]"); 没问题。你可以按照上面的方法尝试一下,希望对你有帮助
It's ok with ("//a[@href]"); You can try it as above.Hope helpful