c# - 使用 Html Agility Pack 选择所有以某个文本值开头的段落
问题描述
我正在学习使用 Html Agility Pack。
我有一系列看起来像这样的段落元素(为了清楚起见,代码拆分):
<p class="rvps2">
<img alt="New Version Icon"
style="vertical-align: middle; padding : 1px; margin : 0px 5px;"
src="lib/IMG_NewVersion.png">
<span class="rvts16">Version 21.1.0 - 2021 Edition</span>
<span class="rvts15"> (22nd March 2021)</span>
</p>
我只对以文本“版本”开头的段落感兴趣。目前我正在这样做:
// Select all Paragraph elements
var nodesParagraph = nodeRevHist.SelectNodes("p");
int iRevisionCount = 0;
foreach (HtmlNode itemParagraph in nodesParagraph)
{
string text = itemParagraph.InnerText;
if (text.Length > 7 && text.Substring(0, 7) == "Version")
{
iRevisionCount++;
是否nodesParagraph
可以过滤到内部文本以“版本”开头的所有段落?
如果可能的话,这将使我的代码更干净。附带问题,我也只对这些段落元素中的前 5 个感兴趣。
这种过滤可能吗?
解决方案
您可以获得内部文本以“版本”开头的前 5 个段落,如下所示:
var nodesParagraph = nodeRevHist
.Elements("p")
.Where(p => p.InnerText.Trim().StartsWith("Version"))
.Take(5);
推荐阅读
- numpy - 带有 3d 数组的 Numpy 点积
- javascript - 滚动时菜单变成纯色?JS?
- c# - 错误 CS0246 使用枚举时找不到类型或命名空间名称
- python - 有没有办法将 Python 程序编译为二进制文件并将其与 Scratch Dockerfile 一起使用?
- php - 在 php 中创建表前缀,就像使用 Wordpress 原始查询一样
- swift - 无法弄清楚异步函数调用
- sap-cloud-platform - mta.yaml 中是否有任何占位符表示法从 CF org 名称参数中删除空格?
- c - 在 Linux 上编译 C - 缺少 procinfo.h
- javascript - 如何将输入项推送到空数组并使用 DOM 将其输出到 h1 标签?
- node.js - 打字稿中的猫鼬子文档缺少模型方法