C# 使用 xpath 解析 html

2023-11-27

我正在尝试使用 HTML 文档中的一段简单的 C# 代码来解析股票交易信息。问题是我无法理解语法,tr 类 =“LomakeTaustaVari”被解析出来,但我如何获得没有 tr 类的第二位?

这是 HTML 的一部分,它使用不同的值重复自身。

<tr class="LomakeTaustaVari">
    <td><div class="Ensimmainen">12:09</div></td>
    <td><div>MSI</div></td>
    <td><div>POH</div></td>
    <td><div>42</div></td>
    <td><div>64,50</div></td>
</tr>
<tr>
    <td><div class="Ensimmainen">12:09</div></td>
    <td><div>SRE</div></td>
    <td><div>POH</div></td>
    <td><div>156</div></td>
    <td><div>64,50</div></td>
</tr>

我的 C# 代码:

{
    HtmlAgilityPack.HtmlWeb web = new HtmlWeb();
    HtmlAgilityPack.HtmlDocument doc = web.Load ("https://www.op.fi/op/henkiloasiakkaat/saastot-ja-sijoitukset/kurssit-ja-markkinat/markkinat?sivu=alltrades.html&sym=KNEBV.HSE&from=10:00&to=19:00&id=32453");

    foreach (HtmlNode row in doc.DocumentNode.SelectNodes("//tr[@class='LomakeTaustaVari']")) 
    {
        Console.WriteLine(row.InnerText);     
    }
    Console.ReadKey();
}

尝试使用下一个xpath//tr[preceding-sibling::tr[@class='LomakeTaustaVari']]:

var nodes = doc.DocumentNode.SelectNodes("//tr[preceding-sibling::tr[@class='LomakeTaustaVari']]");

它应该选择具有前一个节点的节点tr与类LomakeTaustaVari.

仅供参考:如果没有找到节点,SelectNodes方法返回null.

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

C# 使用 xpath 解析 html 的相关文章

  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • 猫鼬 ob​​jectid 到数字

    如何将 ObjectId 转换为数字 在我的应用程序中 我在客户端使用最新的猫鼬版本和主干 我的问题是 ObjectId 最终总是放在引号之间 这会导致我的玉模板和客户端中出现双引号 例如 233453452534 edit 我正在查询 m
  • 如何在没有 _class 属性的情况下将 spring 数据与 couchbase 一起使用

    有没有一种简单的方法可以将 spring data couchbase 与没有的文档一起使用 class属性 在沙发底座上我有类似的东西sampledata bucket username alice created 14732928000
  • CSS 选择器和 jQuery 过滤器之间的区别?

    可以将 CSS 选择器传递给 jQuery 函数 例如 jQuery h1 h2 jQuery 还有一些过滤器 例如 even and odd jQuery tr even 我正在寻找某种区分两者的语法规则 我想也许 jQuery 过滤器总
  • SQL Server中Group By、Having和Where子句的执行顺序?

    当我们使用时 我只是对 SQL 查询的执行顺序感到困惑GROUP BY and HAVING with a WHERE条款 哪个先被处决 顺序是什么 为了 FROM JOINs 确定和过滤行 WHERE行上有更多过滤器 GROUP BY将这
  • gRPC 设置出现问题。出现间歇性 RPC 不可用错误

    我有一个 grpc 服务器和客户端 大部分时间都按预期工作 但偶尔会收到 传输正在关闭 错误 rpc error code Unavailable desc transport is closing 我想知道是不是我的设置有问题 客户端非常
  • 如何创建二维动态长度数组?

    我想创建一个二维数组 而不知道第一维的大小 例如 当我创建数组时 我的行数未知 每一行代表一个帐户 每行退出 4 列 ID 名称 用户 密码 我尝试使用锯齿状数组 但不可能 int jaggedArray new int 3 我也找过Arr
  • 在android上的列表视图下方添加一个按钮

    所以我一直在尝试在android中的列表视图下添加一个按钮 问题是该按钮没有出现
  • 为通过 Azure 函数输出绑定添加到 Azure 队列的消息设置 VisibilityTimeout

    我有一个 TimerTrigger 函数 输出绑定是一个 Azure 队列 这个想法是 计时器每 10 分钟运行一次 它将查看数据库中的视图 并迭代返回的任何行 将它们作为消息添加到队列中 下面是我的示例 TimerTrigger 将消息添
  • 在javascript中初始化和填充多维数组

    我们如何初始化和创建新的多维数组 让我们想象一下 如果我想初始化一个 4x4 多维数组并用 0 填充它 理想情况下 在二维数组中 我们会这样做 let oned array new Array 10 fill 0 将创建大小为 10 的数组
  • 如何使用 Selenium 查找表中的特定行?

    这是一个示例代码 div table class table gradient myPage 因此 productOrderContainer 中的这个表有几列 并且根据某些情况 将有几行 这些行都有几列 一个例子是 例如 我想做的是获取该
  • 在任何应用程序中使用 info.plist 隐藏状态栏

    需要澄清的是 我不想在我自己的应用程序上执行此操作 因此我无权访问源代码 我正在尝试编辑 info plist 或设备上已安装的 app 文件中的任何其他文件 以从应用程序 即 Google Chrome 中删除状态栏 我正在尝试隐藏 Go
  • RDD 在内存中保留多长时间?

    考虑到内存有限 我有一种感觉 spark会自动从每个节点中删除RDD 我想知道这个时间可以配置吗 Spark如何决定何时从内存中驱逐RDD 注意 我不是在谈论rdd cache 我想知道这个时间可以配置吗 Spark 如何决定何时 从内存中
  • 如何在 Tensorflow 中暂停/恢复训练

    这个问题是在保存和恢复文档可用之前提出的 现在我认为这个问题已被弃用 并建议人们依赖官方文档保存和恢复 老问题要点 I got TF工作正常CIFAR教程 我已经改变了 保存的代码train dir 带有检查点的目录和 模型 到已知位置 这
  • 如何使用 javascript aws-sdk 支持 dynamoDB 中的事务?

    我们有一个用 Node js 编写的微服务 并使用 dynamoDB 进行数据存储 值以 json 格式存储在键中 在更新服务调用中 我们获取键的值 更新 json 并保存它 最近 我们遇到了两个调用想要更新同一个键的值的情况 因此 第一次
  • 将文件资源注入 Spring bean

    将一些文件资源注入 Spring bean 的好方法是什么 现在我自动装配 ServletContext 并使用如下所示 在 Spring MVC 中是否有更优雅的方法 Controller public class SomeControl
  • 逐行读取文本文件的最快方法是什么?

    我想逐行读取文本文件 我想知道我是否在 NET C 范围内尽可能高效地完成工作 到目前为止 这就是我正在尝试的 var filestream new System IO FileStream textFilePath System IO F
  • 如何使用Javascript测试用户计算机的处理能力?

    我用大量 CSS3 和 Javascript 制作了一个 CPU 密集型网页 我想使用 Javascript 来测试用户的计算机是否能够处理脚本 我认为一种可能的方法是运行一些 CPU 密集型脚本 看看需要多长时间 但是 我不知道如何实际实
  • 如何在 Laravel 中创建自定义辅助函数

    我想创建辅助函数以避免在 Laravel 中的视图之间重复代码 例如 视图 blade php p Foo Formated text fooFormatText text p 它们基本上是文本格式化函数 我应该如何定义全局可用的辅助函数
  • 如何在 MATLAB 中对齐子图中的图/图形?

    我有 3 个对象 一张照片和 2 个绘图 要放入一个图形的子图中 它应该看起来像这样 但正如人们所注意到的 照片不应该是正方形 而是矩形 我尝试这样做 在这里找到Matlab 当子图之一包含颜色条时如何对齐子图的轴 main subplot
  • C# 使用 xpath 解析 html

    我正在尝试使用 HTML 文档中的一段简单的 C 代码来解析股票交易信息 问题是我无法理解语法 tr 类 LomakeTaustaVari 被解析出来 但我如何获得没有 tr 类的第二位 这是 HTML 的一部分 它使用不同的值重复自身 t