gpt4 book ai didi

c# - 通过 HtmlDocument.All 集合的迭代在引用的样式表处停止?

转载 作者:行者123 更新时间:2023-11-28 00:29:57 25 4
gpt4 key购买 nike

由于“.NET 中的错误”通常不是问题的真正原因,我想知道我是否遗漏了什么。

我所做的感觉很简单。我正在遍历名为 docHtmlDocument 中的元素,如下所示:

System.Diagnostics.Debug.WriteLine("*** " + doc.Url + " ***");
foreach (HtmlElement field in doc.All)
System.Diagnostics.Debug.WriteLine(string.Format("Tag = {0}, ID = {1} ", field.TagName, field.Id));

然后我发现调试窗口输出是这样的:

Tag = !, ID =  
Tag = HTML, ID =
Tag = HEAD, ID =
Tag = TITLE, ID =
Tag = LINK, ID =

...当实际的 HTML 文档如下所示时:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Protocol</title>
<link rel="Stylesheet" type="text/css" media="all" href="ProtocolStyle.css">
</head>
<body onselectstart="return false">
<table>
<!-- Misc. table elements and cell values -->
</table>
</body>
</html>

注释掉 LINK 标签解决了我的问题,并且文档被完全解析。 ProtocolStyle.css 文件存在于磁盘上并正确加载,如果这很重要的话。这是 .NET 3.5 SP1 中的错误还是什么?作为一个面向Web的框架,我很难相信它会有这么大的错误。

更新:顺便说一句,这次迭代是在 WebBrowser 控件的 Navigated 事件中完成的。

最佳答案

几年后,我回到这段代码,终于发现问题出在我遍历了 WebBrowser.Navigated 事件处理程序中的 HtmlDocument.All 集合.执行此操作的正确方法是遍历 WebBrowser.DocumentCompleted 中的元素。

这个错误还导致嵌入式脚本代码看似“停止”解析,就像前面提到的 LINK 标签一样。实际上,它并没有停止——它只是还没有完成整个文档的渲染。

关于c# - 通过 HtmlDocument.All 集合的迭代在引用的样式表处停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2477191/

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