gpt4 book ai didi

c# - 可以在原始输入中获​​取 Html 节点位置和长度吗?

转载 作者:行者123 更新时间:2023-12-04 00:46:06 24 4
gpt4 key购买 nike

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

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

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

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

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

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

我尝试使用 OuterHtml 属性,但不幸的是,HAP 试图通过删除 ___/ 部分( >LINK 元素不应关闭)。因此,OuterHtml.Length 返回错误的长度。

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

最佳答案

我最终修改了 HtmlAgilityPack 的代码以公开一个新属性,该属性返回 HtmlNode 的私有(private) _outerlength 字段。

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

到目前为止,这似乎工作正常。

关于c# - 可以在原始输入中获​​取 Html 节点位置和长度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12861994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com