XPATH如何使用HTML敏捷包從HTML中的tbody一次提取一個td

html html-agility-pack xpath

我正在嘗試從下面的網址(Google財經)解析表格

http://www.google.com/finance/historical?q=BOM:533278

我試圖只提取關閉列中的接近值。但是當我嘗試使用XPATH時

http://www.google.com/finance/historical?q=BOM:533278

我在一個Node.innerText本身中獲得了將屬性作為類和屬性值的所有節點作為rgt。

我需要一個接一個的值,而不是所有的值。我必須在這裡做些傻事。謝謝。

使用Firebug找到的實際XPath如下

http://www.google.com/finance/historical?q=BOM:533278

但是有些如何在form標籤之後...... HTMLagility包返回null節點。從來沒有想過要花這麼長時間來實施。

一般承認的答案

如果您正在使用Firebug或任何Firefox擴展(如XPather )來獲取需要解析的元素的XPath ,則可能需要從XPath中刪除tbody標記。

在這裡看看下面的答案: 為什麼firebug將<tbody>添加到<table>?

如果您正在使用HtmlAgilityPack ,則Firebug或與Firefox相關的任何其他工具返回的XPath可能會有所不同,因為您正在解析HTML源可能與Firefox中HTML源不同

有時在Internet Explorer 8中打開同一頁面並使用開發人員工具(F12)執行與Firebug相同的操作可能很有用,或者如果沒有,請使用可從HtmlAgilityPack頁面下載的其他工具,如HAP Explorer


熱門答案

有很多方法可以做到這一點。這是一個解決方案,它基於Data 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);
}



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因