gpt4 book ai didi

c# - HtmlDocument.Write 剥离引号

转载 作者:搜寻专家 更新时间:2023-10-31 21:51:57 26 4
gpt4 key购买 nike

出于某种原因,当我尝试写入 HtmlDocument 时,它会去掉我给它的字符串的一些(不是全部)引号。

看这里:

HtmlDocument htmlDoc = Webbrowser1.Document.OpenNew(true);
htmlDoc.Write("<HTML><BODY><DIV ID=\"TEST\"></DIV></BODY></HTML>");
string temp = htmlDoc.GetElementsByTagName("HTML")[0].InnerHtml;

temp 的结果是这样的:

<HEAD></HEAD>
<BODY>
<DIV id=TEST></DIV></BODY>

除了去除引号外,它的工作原理与它应该的完全一样。有没有人有关于如何防止或解决此问题的解决方案?

最佳答案

innerHTML 无法保证它会返回与您传入的字符串相同的内容。innerHTML 是由浏览器使用其 HTML 树表示构造的 - 因此它将生成它认为合适的结果字符串。

因此,根据您的需要,您可以尝试使用一些 HTML 解析代码来理解不带引号的 ID,或者尝试说服浏览器使用最新的引擎,这样更有可能生成您喜欢的 innerHTML。

即在你的情况下,它看起来至少 IE9 将你的 HTML 呈现为 IE9:Quirks 模式(以你不满意的形式返回 innerHTML),如果你将有效的 HTML 或强制模式设置为 IE9:Standard,你将获得带有 qoutes 的字符串喜欢

document.getElementsByTagName("html")[0].innerHTML 

IE9:标准 - "<head></head><body><div id="TEST"></div></body>"

IE9:怪癖 -

"<HEAD></HEAD>
<BODY>
<DIV id=TEST></DIV></BODY>"

您可以自己尝试创建示例 HTML 文件并从磁盘打开。 F12 在菜单栏中显示开发工具和 checkout 模式。

关于c# - HtmlDocument.Write 剥离引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7053118/

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