使用 HTMLAgility pack 检索元素的值

本文关键字:元素 检索 HTMLAgility pack 使用 | 更新日期: 2023-09-27 18:36:39

我正在使用HTMLAgility pack来解析html,然后使用xpath检索具有特定类的表列。

HtmlAgilityPack.HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load("www.url.com");
foreach (HtmlNode row in doc.DocumentNode.SelectNodes("(//td[@class='titleColumn'])[2]"))
{
    Response.Write(row.InnerHtml + "<br />");
}

我检索数据和行。Innerhtml看起来像这样。

<a>Title</a> <span>Year</span><br />

我想将 a 和 span 元素的值保存在单独的字符串变量中。请帮忙

使用 HTMLAgility pack 检索元素的值

xpath 表达式选择具有类titleColumn的第二个<td>。根据节点的内部html,这个<td> hode有两个子节点:<a><span>。因此,您可以轻松找到这些节点,然后将内部文本(或内部 html)放入string变量中。看,这个:

foreach (var row in doc.DocumentNode.SelectNodes("(//td[@class='titleColumn'])[2]"))
{
    var a = row.SelectSingleNode("a");
    var span = row.SelectSingleNode("span");
    Console.WriteLine(a.InnerText);
    Console.WriteLine(span.InnerText);
}

将输出:

Title
Year