- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在我的代码中,我想删除没有 src 值的 img 标签。 我正在使用 HTMLAgilitypack 的 HtmlDocument 对象。 我发现没有 src 值的 img 并试图将其删除.. 但它给我错误 Collection was modified;枚举操作可能无法执行。 谁能帮我这个? 我使用的代码是:
foreach (HtmlNode node in doc.DocumentNode.DescendantNodes())
{
if (node.Name.ToLower() == "img")
{
string src = node.Attributes["src"].Value;
if (string.IsNullOrEmpty(src))
{
node.ParentNode.RemoveChild(node, false);
}
}
else
{
..........// i am performing other operations on document
}
}
最佳答案
您似乎在枚举期间使用 HtmlNode.RemoveChild
修改了集合方法。
要解决此问题,您需要通过调用例如将节点复制到单独的列表/数组 Enumerable.ToList<T>()
或 Enumerable.ToArray<T>()
.
var nodesToRemove = doc.DocumentNode
.SelectNodes("//img[not(string-length(normalize-space(@src)))]")
.ToList();
foreach (var node in nodesToRemove)
node.Remove();
如果我是对的,问题就会消失。
关于c# - 从 htmldocument :HTMLAgilityPack 中删除 html 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12106280/
HTML En son haber 01:029.023 代码 Dim request2 As HttpWebRequest = WebRequest.C
我正在使用 HtmlAgilityPack。我使用以下字符串创建一个 HtmlDocument 和 LoadHtml: OneTwo 这会做一些意想不到的事情。首先,它给出了两个解析器错误,EndTa
我需要从博客中获取一些帖子。一切都很顺利,直到我想获得帖子创建日期。它的 DOM 树是: div class="stories-feed__container" -> article -
我需要获取网页上的总字数。这个方法返回的数字是336。但是当我从wordcounter.net手动查看时,大约是1192个字。我怎样才能得到文章的字数? int kelimeSayisi()
使用 HtmlAgilityPack 和 c# 4.0 如何确定页面是否被重定向。我正在使用这种方法来加载页面。 HtmlDocument hdMyDoc = hwWeb.Load(srPageUrl
我正在尝试使用 HtmlAgilityPack 获取计时器的值,但是当我通过元素 ID 获取内部文本时,它会返回 --:--:-- 既然使用了AJAX,有什么方法可以获取时间值吗? 最佳答案 通过使用
jQuery改变后是否可以获取HtmlDocument?例如,在下次更改后通过“myId”获取元素。 js代码: $(document).ready(function () { $("#myC
我有以下 html 元素: MyString buttonText So,
我的目标是从网站上读出特定的容器/标签/属性(出于我的爱好),一切正常,除了为我的值(value)获取德语翻译(我通常在浏览器中手动打开网站时得到(可能是网站从用户代理获取特定信息),但如果我使用我的
是否可以在使用 HTMLAgilityPack 时忽略解析错误? 最佳答案 作为suggested by TrueWill ,您可能需要先清理 HTML,然后再尝试使用 HTMLAgilityPack
我正在使用 HtmlAgilityPack 在 C# Asp.Net 中执行 Scraping,到目前为止,我在从多个 Web 执行 Scratch 时没有遇到问题,但是,尝试弹出以下代码时出现错误
我在服务器上的解析器中使用 HTMLAgilityPack,但我正在解析的其中一个网站出现问题:每天早上 6 点左右,他们往往会关闭服务器进行维护,这会抛出 HTMLWeb 的 Load() 方法,并
这是我的html代码。如何在每个 div 标签后选择第一个链接(a) 我试过只使用一个斜杠://div[@class="test
我有异常抛出 gzip 不受支持。这就是我使用加载页面的全部内容,关于如何允许 gzip 的任何想法? HtmlWeb hwObject = new HtmlWeb();
我正在 SharePoint Foundation 中开发 C# ASP .NET WebPart。 一切正常,现在我想解析一个 HTML 页面以获取所有 ImagePaths 并将图像保存在 HD/
我一直在尝试使用 Html Agility Pack 在 Html 中附加一个新节点。 这是我的示例 Html
我想用这段代码解析一个 html 文件: ...... 问题是 HtmlAgilityPack 会自动关闭 div 结束标记之前的表单标记: ......所以当我解析表单时,一些表单元素丢失了。 (我
一般来说,我经常处理 html,并且总是使用 Regex 来获取结果。不过,每次我寻求帮助时,每个人都建议使用 HTML 解析器,例如 HTMLAgilitypack。 我刚刚试过了,伙计,现在对我来
当我删除一个节点(使用 keepGrandChildren )时,该节点同时包含文本和子节点,文本将一直推到子节点之后,而不是留在其原始位置。 示例: var doc = new HtmlDocume
我使用这段代码来获取页面信息但是现在站点已经更改并且我的应用程序返回空错误。 HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDo
我是一名优秀的程序员,十分优秀!