- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
出于某种原因,当我尝试写入 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/
我注意到,如果你编写这样的程序: console.log(document); 它显示[object HTMLDocument]。然后,如果你这样做: console.log(HTMLDocument
我正在使用 HTMLDocument 迭代器来尝试迭代 HTMLDocument 中的所有 a 标记。然而,迭代器似乎跳过了嵌套在 p 标签内的 a 标签。例如: some site
我使用 WebClient 获取网页的 html 代码(作为字符串)。 但是我想将它变成一个 HtmlDocument 对象,这样我就可以使用这个类提供的 DOM 特性。目前我知道的唯一方法是使用浏览
这是怎么回事?似乎获得有效 HtmlDocument 对象的唯一方法是复制 mshtml/webbrowser 控件的 Document 属性。但是产卵是sloooooooooooow。我想避免编写自
我试图了解位置/偏移量在 HTMLDocument 中的工作原理。描述了位置/偏移语义 here .我的解释是,这些是由 HTMLDocument 表示的屏幕字符序列中的索引。 考虑来自 the HT
我正在使用 WebClient.DownloadString(url) 通过 URL 获取 html 文档,但是很难找到我要查找的元素内容。在四处阅读的过程中,我发现了 HtmlDocument,它有
我有一个问题。看起来 HTMLEditorKit 只是忽略空格。这是我的示例代码: public class TestEditor extends JFrame { public TestEditor
在我的应用程序中,我想使用已使用 NuGet 安装的 HTMLAgilityPack。但是当我尝试创建 HtmlAgilityPack.HtmlDocument 实例时,我有 "Source not
当我运行以下代码时: import java.io.IOException; import java.io.Reader; import java.io.StringReader; import ja
由于“.NET 中的错误”通常不是问题的真正原因,我想知道我是否遗漏了什么。 我所做的感觉很简单。我正在遍历名为 doc 的 HtmlDocument 中的元素,如下所示: System.Diagno
我有一个 Element 对象,它是一个 HTMLDocument 对象,我想将这个元素的值字符串化。 我想要这个结果克里斯蒂娜·托特 (Christina Toth),药学博士。 D. ======
我想将 Javascript DOM HTMLDcument 转换为可以写入文件的字符串。但是如何将 HTMLDocument 的字符串转换为 xml?! 更新 如果可能的话,我希望看到应用任何动态
这适用于在脚本内设置的 cookie(可能在脚本标签内)。 System.Windows.Forms.HtmlDocument 执行这些脚本并且可以通过其 检索 cookie 集(如 document
我有一个将 HTMLEditorKit 设置为默认 editorKit 的 jTextPane。在 jTextPane 上调用 getDocument 返回一个 HTMLDocument 。我可以遍历
出于某种原因,当我尝试写入 HtmlDocument 时,它会去掉我给它的字符串的一些(不是全部)引号。 看这里: HtmlDocument htmlDoc = Webbrowser1.Documen
我正在尝试使用 System.Windows.Forms.HTMLDocument在控制台应用程序中。首先,这可能吗?如果是这样,我如何将网页从网络加载到其中?我正在尝试使用 WebBrowser ,
Uri url = new Uri("http://localhost/rgm.php"); WebClient client = new WebClient(); string html = cli
我正在尝试注入(inject)一些 javascript 代码以防止弹出 javascript 错误,但我在 WPF 中找不到 HTMLDocument 和 IHTMLScriptElement: v
经过一些谷歌搜索,我没有找到任何满足我需要的东西。我想按原样保存当前网页。我的意思是,很多网页执行了 Javascript 并更改了 CSS,因此在一些用户交互之后,网页可能与第一次加载到浏览器时的网
没有办法像 IE WebBrowser?WebBrowser.Document.GetElementById(string id); 那样获取 html 元素。 我是 CefSharp 的新用户,谢谢
我是一名优秀的程序员,十分优秀!