Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[js] 第641天 写一个方法将一个html字符串变成JSON树的形式 #3445

Open
haizhilin2013 opened this issue Jan 15, 2021 · 1 comment
Labels
js JavaScript

Comments

@haizhilin2013
Copy link
Collaborator

第641天 写一个方法将一个html字符串变成JSON树的形式

3+1官网

我也要出题

@haizhilin2013 haizhilin2013 added the js JavaScript label Jan 15, 2021
@LeoHongyi
Copy link

function converter (element, json) {
let res = {}

if (typeof element === 'string') {
   if (window.DOMParser) {
      parser = new DOMParser()
      docNode = parser.parseFromString(element, "text/xml")
   }
  element = docNode.firstChild

}

function treeHTML(element, object) {
object[''type"] = element.nodeName
var nodeList = element.childNode
if (nodeList != null) {
Object["content"] = []
for (var i = 0; i < nodeList.length; i++) {
if (nodeList[i].nodeType == 3) {
object["content"].push(nodeList[i].nodeValue)
} else {
object["content"].push({})
treeHTML(nodeList[i], object["content"][object["content"].length - 1)
}
}
}
}
if (element.attributes != null) {
if (element.attributes.length) {
object["attributes"] = {}
for (var i = 0; i < element.attributes.length; i++) {
object["attributes"][element.attributes[i].nodeName] = element.attributes[i].nodeValue
}
}
}
treeHTML(element, treeObject);
return (json) ? JSON.stringify(treeObject) : treeObject;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
js JavaScript
Projects
None yet
Development

No branches or pull requests

2 participants