可以获取原始输入中的 Html 节点位置和长度吗?

2023-12-23

考虑以下 HTML 片段(_用于空白):

<head>
    ...
    <link ... ___/>
    <!-- ... -->
    ...
</head>

我正在使用 Html Agility Pack (HAP) 来读取 HTML 文件/片段并删除链接。我想做的是找到LINK(以及其他一些)元素,然后用空格替换它们,如下所示:

<head>
    ...
    ____________
    <!-- ... -->
    ...
</head>

到目前为止,解析部分似乎正在工作,我得到了我正在寻找的节点。但是,HAP 尝试修复 HTML 内容,而我需要一切正常exactly一样,除了我试图做出的改变。另外,HAP在写回之前读入的内容时似乎有很多错误,所以我想要采取的方法是让HAP解析输入,然后我返回到原始输入并替换我的内容不想要。

问题是,HtmlNode似乎没有输入长度属性。它有StreamPosition这似乎表明在输入中开始读取节点内容的位置,但我找不到长度属性来告诉我构建节点消耗了多少个字符。

我尝试使用OuterHtml财产,但不幸的是,他试图修复LINK通过删除___/部分(一个LINK元素不应该被关闭)。因为这,OuterHtml.Length返回错误的长度。

HAP中有没有办法获取这些信息?


我最终修改了 HtmlAgilityPack 的代码以公开返回私有的新属性_outerlength现场HtmlNode.

public virtual int OuterLength
{
    get
    {
        return ( _outerlength );
    }
}

到目前为止,这似乎运行良好。

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

可以获取原始输入中的 Html 节点位置和长度吗? 的相关文章

随机推荐

  • 是否可以使用 INSERT 命令将数据插入到表的中间部分?

    例子 索引 一些数据 1 一些 数据1 3 一些数据3 4 一些 数据4 5 一些 数据5 我想做一个 INSERT 来添加 gt 2 一些 数据2 有没有 SQL 命令或某种方法可以做到这一点 edit 好的 也许如果我解释我想要完成的每
  • Eclipse 错误:未绑定类路径容器

    我制作项目后收到两条错误消息 在解决构建路径错误之前 无法构建项目 未绑定的类路径容器 项目 method test 中的 JRE 系统库 OSGi Minimum 1 2 我认为如果我弄清楚第二个错误 第一个错误就会消失 但是 我在 10
  • 如何使用附加信息(如参数)在java中创建自定义堆栈跟踪?

    我被分配了一项任务来创建自定义堆栈跟踪 例如某些指定函数的输出到日志文件 但我不仅需要使用类和方法名称 还必须输出参数及其值 这应该是一个单独的 jar 可以在任何 java 项目上运行 我什至不知道这样的事情是否可能 更不用说从哪里开始了
  • 对于不引用可执行文件的命令,相当于“which”的是什么?

    我试图找出特定命令是如何定义的 我已经检查了所有位置 PATH并且找不到任何像我的命令那样命名的文件 所以它似乎是其他东西 这是一个使用 nvm 的示例 它不是可执行文件 me MacBook which cat bin cat me Ma
  • 安装 Ruby 1.9.3 时出错

    我通过 rvm 安装 Ruby 1 9 3 时遇到错误 rvm install 1 9 3 p0 Installing Ruby from source to home alder rvm rubies ruby 1 9 3 p0 this
  • 使用 jQuery Quicksand 时 CSS 冒泡

    我正在使用 jQuery Quicksand 创建可过滤的文章组合 http davekiss com new http davekiss com new 问题是 当单击侧边栏段落中的过滤器 视频 网站 动态图形 时 正在过滤的文章上的 C
  • 如何在 C# 中处理双重解析中的文化?

    我有一个关于如何在解析双打时处理文化的问题 在系统中 来自不同服务器的价格信息汇集在一起 然而 作为输入给出的数据因文化而异 两百万五十美分如下 2 000 000 50 2 000 000 50 2000000 50 2000000 50
  • Android 4.0如何实现全屏

    Android 4 0 手机只有虚拟按钮 当全屏播放 YouTube 视频时 虚拟按钮实际上是不可见的 视频部分取代了按钮所在的位置 我想做这个 但还没有找到方法 android theme android style Theme NoTi
  • Boost 测试错误:main 已定义

    我有一个Visual Studio我想做一些单元测试的项目Boost Test 我有 2 个文件 File 1 define BOOST TEST MODULE FileX include
  • R Notebook 不显示数据帧的代码输出

    当我尝试查看数据帧结果时 Rnotebook 中的代码块输出没有出现 就好像没有运行一样 我必须通过 pander 函数传递它才能看到输出打印出来 这和针织有关系吗 我提到这一点是因为我在开头将选项设置为以下内容 r setup inclu
  • ReactJS:当子组件调用父组件时,“this.props”不是一个函数

    我已经编写了这段代码 目前正在解决 onClick 事件中的错误 我有两个事件 子元素上的 onClick 事件和顶级父元素上的 onChange 事件 预期的行为应该是更改 Container 组件中当前保存的 activeAccount
  • NServiceBus 到底是一个 ESB

    NServiceBus 到底是 ESB 还是轻量级 ESB 或者它更像是具有持久 可靠消息传递的 WCF 在我看来 它更像是一个消息传递框架 而不是 ESB 只是想要一些指导 因为我刚刚开始研究不同的 ESB 产品以及它们能够做什么或不能做
  • Mercurial 显示“起源”之前的提交数量

    我在这里用 git 术语思考 是否可以看到您在原点之前进行了多少本地提交 就像在 git 中一样 如果您输入git status它会告诉你 Your branch is ahead of blah by blah blah Mercuria
  • android.view.InflateException:二进制 XML 文件行 #1:膨胀类 时出错

    Added ActionBarCompat NavDrawer对于我的项目 在 4 3 设备上运行很顺利 在 2 3 设备上我得到以下异常 09 08 15 09 15 229 E AndroidRuntime 2964 FATAL EXC
  • 单击中间按钮关闭 TabItem

    我有个问题 在我的 WPF 应用程序中 如果我用鼠标中键按下 tabItem 则该 tabItem 应关闭 就像在火狐中一样 但我尝试使用 MVVM 来做到这一点 并且我需要使用命令 我的 tabItems 也是动态创建的 请帮助我 谢谢你
  • 在同一台计算机上开发和使用相同的Python

    我正在开发一个 Python 实用程序模块来帮助进行文件下载 存档等 我在虚拟环境中设置了一个项目以及单元测试 当我想在同一台计算机上使用此模块 本质上是 生产 时 我将文件移动到mymodule目录中的 开发 模块 mymodule 您可
  • webgl 立即模式如何?

    嘿 所以我正在尝试学习 3D 图形 我开始理解即时模式意味着在调用图形时直接绘制图形 例如 html canvas 和保留模式 在 刷新 或交换之前绘制到缓冲区并进行计算缓冲区 但是这几天我一直在学习webgl 我发现它完全缺乏这个线程的东
  • 如何关闭“AmazonS3”对象中的自动代理检测?

    当使用AmazonS3应用程序启动后第一次调用对象时 有大约 14 秒的较大延迟 所有后续调用都不会出现这种大的时间延迟 我之前在其他 HTTP 相关类中遇到过这个确切的延迟问题 这是当相关类尝试确定本地计算机的代理设置以及是否使用它们时引
  • C/C++ Linux,如何在不使用 IP 的情况下查找网络上的邻居(仅限 MAC)

    在小型网络中 比如 20 个或更少的节点 我的程序在测试仪器上需要知道 谁在那里 通过 MAC 而不是通过 IP 我将插入随机网络 并且需要能够执行此操作 而无需知道网络中的任何地址 MAC 或其他内容 并且知道我不能依赖 DHCP DHC
  • 可以获取原始输入中的 Html 节点位置和长度吗?

    考虑以下 HTML 片段 用于空白 我正在使用 Html Agility Pack HAP 来读取 HTML 文件 片段并删除链接 我想做的是找到LINK 以及其他一些 元素 然后用空格替换它们 如下所示 到目前为止 解析部分似乎正在工作