1

目前我正在处理来自网站的 c# 中的 HtmlDocument:

return doc.DocumentNode.SelectSingleNode("//span[@title=input]").InnerText;

我想从标题为“输入”的跨度中获取内部文本。以上是我当前的代码,但在尝试运行它时收到 NullReferenceException。为了从“输入”中检索文本,我的隐式参数应该是什么?

4

3 回答 3

2

您必须在 XPath 表达式中用引号分隔字符串:

return doc.DocumentNode.SelectSingleNode("//span[@title='input']").InnerText;

Plaininput将尝试按该名称匹配节点并替换其值。

于 2012-10-24T19:14:15.730 回答
0

确保span具有属性的元素title存在于您的HtmlDocument对象中,其值为“输入” HtmlAgilityPack

为了正确检查,请尝试以下代码:

if (doc.DocumentNode != null)
{
    var span = doc.DocumentNode.SelectSingleNode("//span[@title='input']");

    if (span != null)
        return span.InnerText;
}
于 2012-10-24T19:28:09.880 回答
-1
return doc.DocumentNode.SelectSingleNode("//span[@title='"+input+"']").InnerText;

Because input is not a string, it has to be concatenated to fit the parameters. Thanks for all of you help!

于 2012-10-25T18:49:23.007 回答