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

2024-06-04

如何从文档中第二个表中的特定位置获取值。我需要下面的 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>

Thanks!

另外...请帮助新手! 请指导我找到可以帮助我理解 Html-Agility-Pack (HAP) 语法的资源。我有 HAP 的 CHM 文件 - 我尝试过使用它,并且尝试使用 VS 的对象浏览器来处理 HAP,但此时它对我来说太神秘了。


Html Agility Pack 配备了一个 XPATH 评估器,如下所示.NET XPATH 语法 http://msdn.microsoft.com/library/ms256471.aspx覆盖已解析的 HTML 节点。请注意,与此库一起使用的 XPATH 表达式要求元素和属性名称为小写,独立于原始 HTML 源。

因此,在您的情况下,您可以使用如下表达式获取第三列、第二行、第二个表的单元格:

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]意思是取第2行。

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

您可以在这里找到优秀的 XPATH 教程:XPath 教程 http://www.w3schools.com/xpath/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从特定单元格获取值 C# Html-Agility-Pack 的相关文章

  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • 如何在 C++ 中的文件末尾添加数据?

    我已按照网上的说明进行操作 此代码应该将输入添加到文件 数据库 的末尾 但当我检查时 数据会覆盖现有数据 请帮忙 这是我的代码 int main string name string address string handphone cou
  • VB.NET 相当于 C# 属性简写吗?

    是否有与 C 等效的 VB NET public string FirstName get set 我知道你能做到 Public Property name As String Get Return name ToString End Ge
  • std::cout 和 std::wcout 有什么区别?

    在c 中 有什么区别std cout and std wcout 它们都控制流缓冲区的输出或将内容打印到控制台 或者它们只是相似吗 它们作用于不同的字符类型 std cout uses char作为字符类型 std wcout uses w
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 在 Unity 进程和另一个 C# 进程之间进行本地 IPC 的最快方法 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望每秒大约 30 次从 C 应用程序向我的 Unity 应用程序传送大量数据 由于 Unity 不支持映射内存和管道 我考虑了 t
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 如何使用 watin 中的 FileUploadDialogHandler 访问文件上传对话框

    我正在使用 IE8 和 watin 并尝试通过我的网页测试上传文件 我不能简单地使用 set 方法设置上传文件 例如 ie FileUpload Find ById someId Set C Desktop image jpg 因为上传文本
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • 私有模板函数

    我有一堂课 C h class C private template
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • 使用 GhostScript.NET 打印 PDF DPI 打印问题

    我在用GhostScript NET http ghostscriptnet codeplex com打印 PDF 当我以 96DPI 打印时 PDF 打印效果很好 但有点模糊 如果我尝试以 600DPI 打印文档 打印的页面会被极大地放大
  • 当另一个线程可能设置共享布尔标志(最多一次)时,是否可以读取共享布尔标志而不锁定它?

    我希望我的线程能够更优雅地关闭 因此我尝试实现一个简单的信号机制 我不认为我想要一个完全事件驱动的线程 所以我有一个工作人员有一种方法可以使用关键部分优雅地停止它Monitor 相当于C lock我相信 绘图线程 h class Drawi

随机推荐

  • 包含哈希标记的目标的 Apache 重写规则

    我正在尝试发出重定向 其中目标包含片段标识符部分 我尝试过这个规则 RewriteRule foo bar cgi script foobar 1 2 R L 但是 那 被转换成 23并且 Web 应用程序无法正确解析此 url 我怎样才能
  • JQuery / Flickr API 获取照片集的问题

    我一直在尝试构建一个通过 Flickr 管理的相册系统 过去一天左右我一直在使用 Flickr API 并编写了以下代码 但它只是没有返回预期的 HTML insetad 我在浏览器中收到上面一行的错误 images html theHtm
  • htmlspecialchars() 期望参数 1 为字符串,Laravel 中给出的数组

    我的程序中出现了这个错误Laravel刀片模板 htmlspecialchars 期望参数 1 为字符串 给定数组 我尝试将数组转换为刀片模板中的字符串 这是代码 Where silderImageDataArray是这里存储的变量和值 这
  • 现实世界中的 JavaCard 3?

    我目前正在从事我的文凭工作 部分工作包括开发JavaCard常规小程序SIM牌 第一个选项是使用JavaCard2 X API并使用APDU与小程序通信的命令 这可能非常棘手 因为我需要为 android 开发客户端应用程序 它将与这个小程
  • 如何解决 MVC 中的“访问令牌已过期,但我们无法刷新它”

    我目前正在研究谷歌API其目的是获取登录者的圈子 我已经有了访问令牌但问题是每当我尝试运行我的代码时它都会返回此异常 访问令牌已过期 但我们无法刷新它 我该如何解决这个问题 var claimsforUser await UserManag
  • 使用 google 查询邮政编码距离

    我有两个邮政编码列表 R 语言 其中一个是孩子的地址及其学业成绩 另一个是学校的地址 我希望能够为每个孩子找到最近的学校 所以大概需要通过转换为长和纬度值来计算邮政编码之间的距离 然后我希望能够在谷歌地图上绘制每所学校的所有孩子 并看看住在
  • 如何给Servant中的所有端点添加前缀?

    我在 Haskell 仆人中有一个 hello world 应用程序 这是其中的一部分 type API my items gt Get JSON MyItem lt gt my items gt Capture id Int gt Get
  • jQuery 可排序连接多个列表

    我有两个列表 每个列表中有 8 个列表元素 我想将任一元素拖动到任一列表中 并将两个列表的总顺序放在一起 目前 该顺序被归类为两个单独的可排序列表 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 不过我希望它是 显然按照元素
  • std::string 到 LPCTSTR

    新版本典型问题如何转换而来std string to LPCTSTR 从不同的帖子中我了解到我应该这样做 CreateDirectory path c str NULL 编译器仍然给出错误 因为cannot convert from con
  • ListView 和 CursorAdapter 对于大量数据的性能问题

    我在 sqlite 表中有大约 4k 行 表有 7 列 我用自己的 CursorAdapter 创建了工作 ListView 查询是这样的SELECT FROM table ORDER BY column DESC 表有第一列 id INT
  • 如何将react-alert与定义为ES6类的React组件一起使用

    我正在尝试使用https www npmjs com package react alert https www npmjs com package react alert在我的项目中 但是为声明为函数的 React 组件提供了示例 但我的
  • 如何通过运行构建队列重新启动 Jenkins?

    我们的 Jenkins 执行大量集成测试 詹金斯运行的时间越长 测试所需的时间就越长 因此 我们每天晚上通过 cronjob 重新启动 Jenkins 服务器 同时 构建队列太长而无法完成 当前正在运行的作业被取消并失败 那太丑了 我找到了
  • 使用 C# 和 Open XML 从 Excel 到 DataTable

    我正在使用 Visual Studio 2008 我需要创建一个DataTable使用 Open XML SDK 2 0 从 Excel 工作表中获取 我需要使用工作表第一行的 DataTable 列创建它 并使用其余值完成它 有谁有示例代
  • 使用 dtexec 运行 SSIS 包

    我正在使用 dtexec 运行 SSIS 包 该软件包在我的系统上的 BIDS 中运行良好 当我创建 SQL Server 代理作业以按计划运行包时 包运行步骤被安排为 T SQL 任务 而不是 SSIS 包 该作业没有报告错误 但它甚至没
  • 编程语言之间的关系

    我想知道以下问题 这是什么意思 有些语言是 另一个的子集 超集 http www c2 com cgi wiki ForeignFunctionInterface 能 是用数学来定义的吗 是吗 与子集 超集相关 初等集合论中的概念 几乎所有
  • jqGrid cellattr 标题忽略空格后的文本

    我在 jqgrid 中有 colmodel 它有 名称 和 描述 列 我需要将鼠标悬停在 名称 列上时将描述显示为工具提示 假设我有这个模型 例如 colModel name name cellattr function rowId val
  • 无法让 ASCII 艺术回显到控制台

    我是 Bash 脚本新手 这让我感到困惑 我正在将 ASCII 艺术添加到项目中 但似乎无法弄清楚如何转义某些字符 有人可以帮我让下面的代码正常工作吗 每当我尝试添加斜杠作为转义字符来修复错误时 斜杠也会在执行时打印到控制台 这破坏了形象
  • 在 React 中过滤数据的最佳方法是什么?

    我正在建立该国餐馆的目录 该 API 返回一组对象 每个对象都包含诸如restaurantName restaurantLocation restaurantPriceRange 等字段 我想创建一个过滤组件 它将餐厅数组减少到仅包含那些符
  • Django:ModelForm 管理员的当前用户 ID

    我想用当前用户过滤 ModelChoiceField 我找到了一个非常接近我想做的解决方案 但我不明白Django 如何在管理表单中获取当前用户 https stackoverflow com questions 2864955 djang
  • 如何从特定单元格获取值 C# Html-Agility-Pack

    如何从文档中第二个表中的特定位置获取值 我需要下面的 html 文档中第二个单元格下方和第三列上方的值 我该怎么做呢 table border 1 tr th Room th th Location th tr tr td Paint td