首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从特定单元格获取值C# -Agility-Pack

如何从特定单元格获取值C# -Agility-Pack
EN

Stack Overflow用户
提问于 2013-05-10 11:21:04
回答 1查看 2.4K关注 0票数 1

如何从文档的第二个表中的特定位置获取值。我需要在下面的html文档中从第二个单元格向下到第三列的值。我该怎么做。

代码语言:javascript
复制
<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,但它在这一点上对我来说太神秘了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-10 15:19:23

Html Agility Pack配备了一个XPATH计算器,它在解析的HTML节点上跟随.NET XPATH syntax。注与该库一起使用的XPATH表达式要求元素和属性名称为小写,独立于原始HTML源代码。

因此,在您的示例中,您可以使用如下表达式获取第3列、第2行、第2表的单元格:

代码语言:javascript
复制
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]表示取第三个单元格。

你可以在这里找到好的XPATH教程:XPath Tutorial

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16474659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档