我正在使用HTMLAgility包来解析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 />");
}
我检索数据并且row.Innerhtml看起来像这样。
<a>Title</a> <span>Year</span><br />
我想将a和span元素的值保存在单独的字符串变量中。请帮忙
答案 0 :(得分:2)
您的xpath表达式选择具有类<td>
的第二个titleColumn
。根据节点的内部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