gpt4 book ai didi

javascript - DOM 的 JavaScript 解析器

转载 作者:数据小太阳 更新时间:2023-10-29 05:04:37 26 4
gpt4 key购买 nike

我们在一个项目中有一个特殊要求,我们必须在客户端仅通过 JavaScript 解析一串 HTML(来自 AJAX 响应)。没错,没有用 PHP 或 Java 进行解析!我整整一周都在研究 StackOverflow,但还没有找到可接受的解决方案。

有关要求的更多详细信息:

  • 我们可以使用任何库(最好是 dojo 和/或 jQuery)或原生!

  • 我们需要解析一个我们作为字符串收到的整个 HTML 文档,包括 <head><body> .

  • 有时我们还需要将解析后的 DOM 结构序列化为字符串。

  • 最后,我们不想将解析后的 DOM 附加到当前文档。相反,我们会将其发送回服务器以进行永久存储。

例如:我们需要类似的东西

var dom = HTMLtoDOM('<html><head><title> This is the old title. </title></head></html>');
dom.getElementsByTagName('title')[0].innerHTML = "This is a new Title";

根据我的研究,这些是我们的选择:

  1. A TinyMCE Parser .问题?我认为我们必须包括一名编辑。在我们不需要编辑器的地方解析 HTML 怎么样?

  2. John Resig's Parser .应该是我们最好的选择。不幸的是,当给定页面的全部内容时,解析器会崩溃!

  3. jQuery $(htmlString) 或 dojo.toDom(htmlString)。两者都依赖于 DocumentFragment,因此吞噬了 <head><body> !

编辑:我们想要序列化 ​​HTML,以便我们可以通过 RegExp 捕获某些自定义 HTML Commnet。我们需要让用户有机会编辑元标记、标题标记等,因此需要 HTML 解析器。

哦,我觉得即使我只是提示通过 RegExp 解析 HTML,我也会在 Stack Overflow 中被谋杀!!!

最佳答案

您可以利用当前文档而不向其附加任何节点。

尝试这样的事情:

function toNode(html) {
var doc = document.createElement('html');
doc.innerHTML = html;
return doc;
}

var node = toNode('<html><head><title> This is the old title. </title></head></html>');

console.log(node);​

http://jsfiddle.net/6SvqA/3/

关于javascript - DOM 的 JavaScript 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9540218/

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