我试图使用HtmlAgilityPack库来解析页面中的一些链接,但我没有看到预期的结果.在下面我有一个HTMLNode链接集合.对于每个链接,我想判断是否存在图像 node ,然后解析其属性,但linkNode的SelectNodes和SelectSingleNode方法似乎在搜索父文档,而不是linkNode的子 node .给出了什么?

HtmlDocument htmldoc = new HtmlDocument();
htmldoc.LoadHtml(content);
HtmlNodeCollection linkNodes = htmldoc.DocumentNode.SelectNodes("//a[@href]");

foreach(HtmlNode linkNode in linkNodes)
{
    string linkTitle = linkNode.GetAttributeValue("title", string.Empty);
    if (linkTitle == string.Empty)
    {
        HtmlNode imageNode = linkNode.SelectSingleNode("/img[@alt]");     
    }
}

有没有其他方法可以获得Linknode的图像子 node 的alt属性(如果它存在的话)?

推荐答案

您应该从"/img[@alt]"中删除转发斜杠前缀,因为它表示您希望从文档的根开始.

HtmlNode imageNode = linkNode.SelectSingleNode("img[@alt]");

Asp.net相关问答推荐

如何正确配置 IHttpModule?

为什么我在安装 IE8 后无法从 Visual Studio 2005 调试?

ASP.NET - AppDomain.CurrentDomain.GetAssemblies() - AppDomain 重新启动后缺少程序集

测试项目中的 App.config

将命令行参数传递给 ASP.NET Core 中的 Startup 类

判断会话是否为空

如何使用 ASP.NET Identity 创建用户并获取新创建的 ID

显示单选按钮列表内联

HttpModules 的执行顺序是如何确定的?

ASP.NET MVC4 异步控制器 - 为什么要使用?

如何设置默认页面 asp.net

DropDownList AppendDataBoundItems(第一项为空白且无重复项)

ASP .NET 单例

将 MemoryStream 写入响应对象

压力测试 ASP.Net 应用程序

如何将我的 Autofac 容器插入 ASP. NET 身份 2.1

如何将代码中的变量调用到aspx页面

如何使 URL 重写与 web.Release.config 转换一起工作?

如何在不遍历每个循环的情况下从字典对象中获取所有键(仅键)

如何创建代表 colored颜色 的随机十六进制字符串?