2013-05-10 64 views
0

如何從文檔的第二個表格中的特定位置獲取值。我需要下面的html文檔中的第二個單元格的值和第三列的值。我該怎麼做呢。如何獲取特定單元格的值C#Html-Agility-Pack

<html> 
<head> 
<title>Tables</title> 
</head> 
<body> 
<table border="1"> 
    <tr> 
    <th>Room</th> 
    <th>Location</th> 
    </tr> 
    <tr> 
    <td>Paint</td> 
    <td>A4</td> 
    </tr> 
    <tr> 
    <td>Stock</td> 
    <td>B3</td> 
    </tr> 
    <tr> 
    <td>Assy</td> 
    <td>N9</td> 
    </tr> 
</table> 
<p></p> 
<table border="1"> 
    <tr> 
    <th>Product</th> 
    <th>Mat'l</th> 
    <th>Weight</th> 
    <th>Size</th> 
    </tr> 
    <tr> 
    <td>Cover</td> 
    <td>Plastic</td> 
    <td>4</td> 
    <td>16</td> 
    </tr> 
    <tr> 
    <td>Retainer</td> 
    <td>Steel</td> 
    <td>12</td> 
    <td>8</td> 
    </tr> 
    <tr> 
    <td>Pin</td> 
    <td>Bronze</td> 
    <td>18</td> 
    <td>7</td> 
    </tr> 
</table> 
<p></p> 
<table border="1"> 
    <tr> 
    <th>Process</th> 
    <th>Location</th> 
    <th>Number</th> 
    </tr> 
    <tr> 
    <td>Trim</td> 
    <td>S2</td> 
    <td>8</td> 
    </tr> 
    <tr> 
    <td>Finish</td> 
    <td>D2</td> 
    <td>3</td> 
    </tr> 
</table> 
</body> 
</html> 

謝謝!

另外...請幫助新手出來! 請將我引導至可幫助我理解Html-Agility-Pack(HAP)語法的資源。我有HAP的CHM文件 - 我嘗試過使用它,我嘗試過使用VS的對象瀏覽器進行HAP,但對於我來說,這一點太神祕了。

+0

應該繼承/重用的XmlDocument。查詢/過濾器語法使用xpath。 例如: HtmlAgilityPack.HtmlDocument.DocumentNode.SelectNodes(「// div [@class = \」myContent \「]」); – Kelmen 2013-05-10 04:10:58

回答

1

Html Agility Pack配備了一個XPATH評估程序,該程序在分析的HTML節點上遵循.NET XPATH syntax。請注意,與此庫一起使用的XPATH表達式要求元素和屬性名稱爲小寫,與原始HTML源無關。

所以你的情況,你可以得到第3列,2行2表中的單元格,像這樣的表達式:

HtmlDocument doc = new HtmlDocument(); 
doc.Load(YouTestHtmlFilePath); 

HtmlNode node = doc.DocumentNode.SelectSingleNode("//table[2]/tr[2]/td[3]"); 
Console.WriteLine(node.InnerText); // will output "4" 

//table意味着從根本得到任何表元素遞歸。 [2]表示拿第二張表。

/tr表示從當前表中獲取任何TR元素。 [2]代表第二排。

/td表示從當前行中獲取任何TD元素。 [3]表示取第3個單元格。

你可以在這裏找到很好的XPATH教程:XPath Tutorial

+0

非常感謝! – user1944272 2013-05-10 15:06:33

相關問題