我正试图从下面的URL ()解析该表
http://www.google.com/finance/historical?q=BOM:533278我试图只提取关闭列中的关闭值。但是当我尝试使用XPATH时
hd.DocumentNode.SelectSingleNode("//td[@class='rgt']")我将在一个Node.innerText本身中获得属性作为类,属性值为rgt的所有节点。
我需要的是一个又一个的价值观,而不是所有的同时。我一定是在做傻事。谢谢。
使用Firebug发现的实际XPath如下
/html/body/div/div/div[3]/div[2]/div/div[2]
/div[2]/div/form/div[2]/table/tbody/tr[2]/td[5]但是在表单tag...HTMLagility包之后返回空节点的一些方法。没想到要这么长时间才能实现。
发布于 2011-03-11 05:39:13
如果您使用Firebug或任何Firefox扩展(如XPather)来获取需要解析的元素的XPath,则可能需要从XPath中删除tbody标记。
请看下面的答案:?
如果您正在使用HtmlAgilityPack,,则由Firebug或与Firefox相关的任何其他工具返回的HTML可能有所不同,因为您正在解析的HTML源可能与火狐中的源不同。
有时,在Internet 8中打开相同的页面并使用开发人员工具(F12)进行与Firebug相同的操作,或者使用其他工具,如HAP资源管理器,可以从HtmlAgilityPack页面下载
发布于 2011-03-06 16:54:40
做这件事有很多方法。这里有一个解决方案,它基于数据td (使用'lm‘类的解决方案):
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
... load the doc ...
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//td[@class='lm']/../td[5]"))
{
Console.WriteLine("node=" + node.InnerText);
}发布于 2011-03-05 11:55:41
封闭列中的第一个单元格的XPath是//div[@id='prices']/table/tbody/tr[2]/td[5],第二个单元格是//div[@id='prices']/table/tbody/tr[3]/td[5],依此类推。
https://stackoverflow.com/questions/5203573
复制相似问题