-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdomparser.js
33 lines (30 loc) · 1.03 KB
/
domparser.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var node = document.documentElement
function callnode(node) {
var result = {
tag: node.nodeName
},
nodes, i;
if (node.childElementCount) {
result.children = [];
for (i = 0; nodes = node.children[i]; i++) {
for (k = 0; k < node.childNodes.length; k++) {
if (node.childNodes[k].nodeType === 3 || node.childNodes[k].nodeType === 8) {
result[node.childNodes[k].nodeValue] = node.childNodes[k].nodeValue
}
}
result.children.push(callnode(nodes));
}
}
for (k = 0; k < node.childNodes.length; k++) {
if (node.childNodes[k].nodeType === 3 || node.childNodes[k].nodeType === 8) {
result[node.childNodes[k].nodeValue] = node.childNodes[k].nodeValue
}
}
for (i = 0; nodes = node.attributes[i]; i++) {
result[nodes.nodeName] = nodes.nodeValue;
}
return result;
}
tagresult = callnode(node)
console.log(tagresult)
jsonstring = JSON.stringify(tagresult)