Html Agility Pack - 按 ID 或类删除标签

2024-01-31

这是我的简化 HTML:

<html>
  <body>
    <div id="mainDiv">
       <div id="divToRemove"></div>
       <div id="divToKeep"></div>
       <div class="divToRemove"></div>
       <div class="divToRemove"></div>
    </div>
  </body>
</html>

我想删除 ID 或类名为“divToRemove”的 div 然后我只想选择名为“mainDiv”的 div(在 HtmlNode 中)。

结果应该是:

   <div id="mainDiv">
       <div id="divToKeep"></div>
   </div>

我如何使用 Html Agility Pack 来做到这一点?

Thanks!


以下代码改编自此 Html Agility Pack 论坛页面 http://htmlagilitypack.codeplex.com/discussions/248692以满足您的需求。本质上,我们将获取所有 div,然后循环它们并检查它们的类或 id 是否匹配。如果存在,请将其删除。

var divs = htmldoc.DocumentNode.SelectNodes("//div");
if (divs != null)
{
    foreach (var tag in divs)
    {
        if (tag.Attributes["class"] != null && string.Compare(tag.Attributes["class"].Value, "divToRemove", StringComparison.InvariantCultureIgnoreCase) == 0)
        {
            tag.Remove();
        } else if(tag.Attributes["id"] != null && string.Compare(tag.Attributes["id"].Value, "divToRemove", StringComparison.InvariantCultureIgnoreCase) == 0) {
            tag.Remove();
        }
    }
}

您还可以将这些 if 语句组合成一个大的 if 语句,但我认为这对于答案来说读起来更好。

最后,选择您要查找的节点...

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

Html Agility Pack - 按 ID 或类删除标签 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable

随机推荐

  • CodeIgniter .htaccess index.php 重写不适用于用户目录

    我在使用 codeigniter 时遇到了一些问题 我有一个 htaccess 来重写 index php 如果我将我的项目放在 var www 上或者为其创建一个虚拟主机 它会很好地工作 但我想使用我的用户目录 例如http localh
  • 如何更改富文本框 wpf c# 中选定的文本背景颜色

    如何在 to 中显示 html 文本RichTextBox控制 实际上我想更改所选文本的背景颜色RichTextBox在 C 中 wpf 我尝试了这段代码 但它不显示格式化文本 请帮助我 提前致谢 void rtbTextEditor Se
  • xsd 架构文件必须在 SQLXMLBULKLOADLib.SQLXMLBulkLoad4Class 中进行注释?

    这是使用 SQLXMLBULKLOADLib SQLXMLBulkLoad4Class 的示例 STAThread static void Main string args try SQLXMLBULKLOADLib SQLXMLBulkL
  • 将多个 PHP 脚本合并到一个文件中

    我有一个 PHP 脚本 其中包含一两个其他库 它依赖于使用 include 陈述 为了使其更容易移植 我想以某种方式 编译 脚本和included 将其库放入单个 PHP 脚本中 与ack http betterthangrep com将其
  • 尝试从 Chrome 实现拖放 Gmail 附件

    我一直在尝试将 Gmail 附件从 Chrome 拖放到我的应用程序中 可以将文件从电子邮件拖到桌面并在那里创建附件 所以我知道这一定是可能的 我已经能够让它读取文件名 但是当我从数据对象读取 FileContents 时 我得到一个带有该
  • 将 HTML 转换为 CSV

    我想将从下面的脚本获得的 HTML 表转换为 CSV 文件 但出现类型错误 如下所示 类型错误 序列项 0 预期字符串 找到标签 from bs4 import BeautifulSoup import urllib2 url http w
  • 使用 SQL 按日期过滤

    我想知道您的想法 我必须获得会话期间与系统的所有连接 为了使这个过程自动化 我决定使用 current date 但这不起作用 因为 current date 不是字符串 而是函数 所以我的问题是是否有人可以帮助我查询以获取当天所有连接的数
  • 将基本身份验证和表单登录结合到同一个 REST Api

    有没有办法为同一个 REST 服务设置基本身份验证和表单登录 我想让登录的用户在登录后通过网络浏览器以及从命令行运行来触发此服务curl u username password hostname com api process现在我看到了这
  • 网站加载时显示旋转轮或进度条

    我正在使用名为 jquery treeview 的 jQuery 插件构建一个树视图 构建此树视图需要花费大量时间 大约 5 7 秒 并且我想在页面加载时显示旋转轮或进度条 有谁知道这是怎么做到的吗 我只找到了加载视频或图像的解决方案 其中
  • 来自 Google 的带有 Charts API 示例的 GWT 无法正常工作

    我已经下载了在 GWT 中使用图表所需的 jar 附带的存档 存档中还有示例应用程序 http gwt google com samples hellovisualization 1 1 0 HelloVisualization html
  • 向量和平均数的随机化

    我有一个计算累积平均值和标准差的脚本 library tidyverse tibble aa c 2 3 4 5 6 7 8 gt mutate running mean sapply seq n function i mean aa se
  • .NET 4.5 中等待完成后 HttpContext.Current 为 null

    我在 NET 4 5 Web 应用程序中定义了以下简单的 WCF 服务 ServiceContract public interface IService1 OperationContract WebGet UriTemplate json
  • 将猪结果存储到本地文件

    我运行pig脚本做了一些夸张的操作 并且输出大小非常小 现在我跑 hadoop fs getmerge 分别地 有什么办法让pig脚本将结果直接转储到本地文件中吗 如果您不担心将所有内容合并到一个文件中 那么您可以在 grunt 中使用 c
  • 如何使用OpenCV提高Grabcut算法的准确性?

    我正在使用 OpenCV 的抓取算法在 android 中对图像进行背景减除 算法运行良好 但给出的结果不准确 例如 我的输入图像是 输出图像如下所示 那么我们如何提高Grabcut算法的准确性呢 P S 由于声誉低而没有上传示例图像 对此
  • 将实例添加到 MEF 容器

    如何将已创建的实例添加到 MEF 容器 目录中以在解析导入时使用 我想要 Unity 提供的功能RegisterInstance其容器上的方法 您可以使用撰写导出值 http msdn microsoft com en us library
  • 内部有 Any() 的嵌套 for 循环的 Big O 是什么?

    这个问题基本上是我的后续问题在这里回答 https stackoverflow com a 38332524 542251 我真的很想说这个算法的大O是什么 但我不确定我的说法是否完全正确 所以给定两个数组 B Hello World He
  • MSBuild 条件 IsDebug

    如何确定项目是否在 MSBuild targets 文件中以调试 或发布 模式构建 并使用此信息作为另一个属性的条件 就像是
  • 在 CSV 行末尾查找未终止的引用字段

    无论如何 我们是否可以找到 CSV 行末尾未终止的引用字段 的行号 我正在尝试在 java 中读取 CSV 文件 但出现错误很可能是因为 有一个报价已打开但未关闭 我正在使用 deeplearning4j datavec 的 CSVReco
  • AES 加密在 iOS 和 Android 中产生不同的结果

    尝试在 Android 和 iOS 中使用带有 CBC 和 PKCS7 填充的 AES128 算法来加密示例数据 但结果不同 安卓代码 private static final byte KEY 0x01 0x02 0x03 0x04 0x
  • Html Agility Pack - 按 ID 或类删除标签

    这是我的简化 HTML div div div div div div class divToRemove div div class divToRemove div div 我想删除 ID 或类名为 divToRemove 的 div 然