html 在线引入json,将HTML映射到JSON

0a89f97ce45bf9f36163a305a1c23edc.png

哔哔one

我只是编写了此函数来实现您想要的功能,请尝试一下,让我知道它是否无法正确运行:// Test with an element.var initElement = document.getElementsByTagName("html")[0];var json = mapDOM(initElement, true);console.log(json);// Test with a string.initElement = "

textText2
";json = mapDOM(initElement, true);console.log(json);function mapDOM(element, json) {    var treeObject = {};    // If string convert to document Node    if (typeof element === "string") {        if (window.DOMParser) {              parser = new DOMParser();              docNode = parser.parseFromString(element,"text/xml");        } else { // Microsoft strikes again              docNode = new ActiveXObject("Microsoft.XMLDOM");              docNode.async = false;              docNode.loadXML(element);         }         element = docNode.firstChild;    }    //Recursively loop through DOM elements and assign properties to object    function treeHTML(element, object) {        object["type"] = element.nodeName;        var nodeList = element.childNodes;        if (nodeList != null) {            if (nodeList.length) {                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;}工作示例:http : //jsfiddle.net/JUSsf/(在chrome中测试,我不能保证完全支持浏览器-您必须对此进行测试)。它将创建一个对象,该对象包含您请求格式的HTML页面的树状结构,然后使用JSON.stringify()大多数现代浏览器(IE8 +,Firefox 3+等)中包含的结构; 如果您需要支持较旧的浏览器,则可以包含json2.js。它可以使用a DOM element或string包含有效XHTML的参数作为参数(我相信,我不确定DOMParser()在某些情况下,will 是否会因设置为true而窒息,"text/xml"或者只是不提供错误处理。不幸的是"text/html",浏览器支持不佳)。您可以通过传递一个不同的值来轻松更改此函数的范围element。无论您传递什么值,都将成为JSON映射的根。请享用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值