我正在尝试从下面的 URL (Google finance) 解析表格
http://www.google.com/finance/historical?q=BOM:533278
我试图只提取 close 列中的 close 值。但是当我尝试使用 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]
但是在表单标签之后......HTMLagility pack 返回空节点的一些方式。从来没有想过这会花这么长时间来实现。
最佳答案
如果您使用 Firebug 或任何 Firefox 扩展(如 XPather)来获取 XPath
对于需要解析的元素,您可能需要从 XPath 中删除 tbody
标记。
在 SO 上查看以下答案:Why does firebug add <tbody> to <table>?
如果您正在使用 HtmlAgilityPack,Firebug 或与 Firefox 相关的任何其他工具返回的 XPath
> 可能会有所不同,因为您正在解析的 HTML 源代码可能与 Firefox 中的 HTML 源代码不同。
有时在 Internet Explorer 8 中打开同一页面并使用开发人员工具 (F12) 执行与使用 Firebug 相同的操作可能会很有用,否则, 使用可以从 HtmlAgilityPack page 下载的另一个工具,如 HAP Explorer
关于html - XPATH 如何使用 HTML 敏捷包从 HTML 中的 tbody 一次提取一个 td,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5203573/