gpt4 book ai didi

javascript - HTML 网页字符串在 JS 中转化为数组或 JSON

转载 作者:行者123 更新时间:2023-11-29 22:37:14 30 4
gpt4 key购买 nike

您好!

是否可以使用 Javascript 将 HTML 字符串转换为数组或 JSON?

像这样:

var stringweb = '<html><head>hi</head><body>my body</body></html>';

结果,我可以得到这个:

var myarray = {[html,
[head,
[hi]
]
[etc...]
]}

提前致谢! :)

最佳答案

从上面的评论可以看出,这似乎不是最可靠的想法...总之,我认为有一个解决方案可以满足您的要求。无论如何,写起来很有趣。

function htmlStringToArray(str) {
var temp = document.createElement('iframe');
temp.style.display = "none";
document.body.appendChild(temp);
var doc = temp.contentWindow.document;
doc.open();
doc.write(str);
doc.close();

var array = htmlNodeToArray(doc.documentElement);
temp.parentNode.removeChild(temp);
return array;
}

function htmlNodeToArray(node) {
if (node.nodeType == 1) {
var array = [node.tagName];
if (node.childNodes.length) {
for (var i=0, child; child = node.childNodes[i]; i++) {
if (child.nodeType == 1 || child.nodeType == 3) {
array.push(htmlNodeToArray(child));
}
}
} else if (node.innerText) {
array.push([node.innerText]);
}
return array;

} else if (node.nodeType == 3) {
return [node.nodeValue];
}
}

我在最新的 chrome、firefox 和 IE 中试过了。它在 jsbin 上运行:http://jsbin.com/uqize3/7/edit

顺便说一句,您的 HTML 字符串无效。浏览器将从 <head> 中移动“hi”进入<body> .我假设你打算有一个 <title>在那里。

关于javascript - HTML 网页字符串在 JS 中转化为数组或 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4604028/

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