【问题标题】:How to get the value from a specific cell C# Html-Agility-Pack如何从特定单元格 C# Html-Agility-Pack 获取值
【发布时间】:2013-05-04 16:32:49
【问题描述】:

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

<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,但此时它对我来说太神秘了。

【问题讨论】:

  • 它应该是继承/重用 XmlDocument。查询/过滤器语法使用 xpath。例如:HtmlAgilityPack.HtmlDocument.DocumentNode.SelectNodes("//div[@class=\"myContent\"]");

标签: c# html-parsing html-agility-pack


【解决方案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 表示从根递归获取任何 TABLE 元素。 [2] 表示第二张桌子。

/tr 表示从此当前表中获取任何 TR 元素。 [2] 表示取第二行。

/td 表示从当前行获取任何 TD 元素。 [3] 表示取第三个单元格。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    相关资源
    最近更新 更多