xml: XML code
<admin>
                <Attribute id = "Sort">0</Attribute>
                <Attribute id = "SortView">0</Attribute>
                <Attribute id = "TCView">0</Attribute>
                <Attribute id = "Deep">4</Attribute>
                <Attribute id = "TCode"></Attribute>
                <Nodes>
                    <_1>
                        <_1 id="Text">1111</_1>
                        <_1 id="ID">A-2018</_1>
                        <_1 id="Deep">0</_1>
                        <_1 id="Sort">0</_1>
                        <_1 id="ParentID">null</_1>
                        <_1 id="Taxis">0</_1>
                        <_1 id="Display"></_1>
                        <_1 id="Class"></_1>
                        <_1 id="Type">0</_1>
                        <_1 id="TCode"></_1>
                    </_1>
                    <_2>
                        <_2 id="Text">2222</_2>
                        <_2 id="ID">A-2018</_2>
                        <_2 id="Deep">0</_2>
                        <_2 id="Sort">0</_2>
                        <_2 id="ParentID">null</_2>
                        <_2 id="Taxis">0</_2>
                        <_2 id="Display"></_2>
                        <_2 id="Class"></_2>
                        <_2 id="Type">0</_2>
                        <_2 id="TCode"></_2>
                    </_2>
                </Nodes>
            </admin>谁能给我提供一个这种xml转成下面的json的javascript 程序,不胜感激 JSON 
var Cont = { "Nodes":[ 

"Text" : "1111", 
"ID" : "A-2018", 
"Deep" : 0, 
"Sort" : 0, 
"ParentID" : null, 
"Taxis" : 0, 
"Display" : "", 
"Class" : "", 
"Type" : 0, 
"TCode" : "" 
},{ 
"Text" : "2222", 
"ID" : "A-2018", 
"Deep" : 0, 
"Sort" : 0, 
"ParentID" : null, 
"Taxis" : 0, 
"Display" : "", 
"Class" : "", 
"Type" : 0, 
"TCode" : "" 
}], "Attribute":{ 
"Sort" : 0, 
"SortView" : 0, 
"TCView" : 0, 
"Deep" : 4, 
"TCode" : "" 


解决方案 »

  1.   

    参考如下代码:
    <html>
    <body>
    <script type="text/javascript">
    var xml = 
    '<admin>\n' +
    ' <Attribute id = "Sort">0</Attribute>\n' +
    ' <Attribute id = "SortView">0</Attribute>\n' +
    ' <Attribute id = "TCView">0</Attribute>\n' +
    ' <Attribute id = "Deep">4</Attribute>\n' +
    ' <Attribute id = "TCode"></Attribute>\n' +
    ' <Nodes>\n' +
    ' <_1>\n' +
    ' <_1 id="Text">1111</_1>\n' +
    ' <_1 id="ID">A-2018</_1>\n' +
    ' <_1 id="Deep">0</_1>\n' +
    ' <_1 id="Sort">0</_1>\n' +
    ' <_1 id="ParentID">null</_1>\n' +
    ' <_1 id="Taxis">0</_1>\n' +
    ' <_1 id="Display"></_1>\n' +
    ' <_1 id="Class"></_1>\n' +
    ' <_1 id="Type">0</_1>\n' +
    ' <_1 id="TCode"></_1>\n' +
    ' </_1>\n' +
    ' <_2>\n' +
    ' <_2 id="Text">2222</_2>\n' +
    ' <_2 id="ID">A-2018</_2>\n' +
    ' <_2 id="Deep">0</_2>\n' +
    ' <_2 id="Sort">0</_2>\n' +
    ' <_2 id="ParentID">null</_2>\n' +
    ' <_2 id="Taxis">0</_2>\n' +
    ' <_2 id="Display"></_2>\n' +
    ' <_2 id="Class"></_2>\n' +
    ' <_2 id="Type">0</_2>\n' +
    ' <_2 id="TCode"></_2>\n' +
    ' </_2>\n' +
    ' </Nodes>\n' +
    '</admin>\n';
    if (typeof ActiveXObject == 'function')
    {
    xmldoc = new ActiveXObject('Microsoft.XMLDOM');
    xmldoc.loadXML(xml);
    } else { // firefox
    xmldoc = (new DOMParser()).parseFromString(xml, 'text/xml');
    XMLDocument.prototype.selectNodes = Element.prototype.selectNodes = function (xpath) {
    var xpe = new XPathEvaluator(); 
    var nsResolver = xpe.createNSResolver( this .ownerDocument == null ? 
    this .documentElement : this .ownerDocument.documentElement); 
    var result = xpe.evaluate(xpath, this , nsResolver, 0 , null ); 
    var found = []; 
    var res; 
    while (res = result.iterateNext()) 
    found.push(res); 
    return found; 

    }var result = 
    'var Cont = {\n' +
    '\t"Nodes": [\n';
    var nodes = xmldoc.selectNodes('admin/Nodes');
    if (nodes.length > 0) {
    nodes = nodes[0];
    var nodeFirst = true;
    for (var i = 0; i < nodes.childNodes.length; i++) {
    var node = nodes.childNodes[i];
    if (node.nodeType == 1) {
    result += '\t\t' + (!nodeFirst ? ',' : '') + '{\n';
    nodeFirst = false;
    var childFirst = true;
    for (var j = 0; j < node.childNodes.length; j++) {
    var child = node.childNodes[j];
    if (child.nodeType == 1) {
    result += '\t\t\t' + (!childFirst ? ',' : '') + '"' + child.getAttribute('id') + '": ' + '"' + 
    (child.childNodes.length > 0 && child.childNodes[0].nodeType == 3 ? 
    child.childNodes[0].nodeValue : '').replace(/"/, '\\"') + '"\n';
    childFirst = false;
    }
    }
    result += '\t\t}\n';
    }
    }
    }
    result += '\t]\n';
    var nodes = xmldoc.selectNodes('admin/Attribute');
    result += '\t,"Attribute":{\n';
    var nodeFirst = true;
    for (var i = 0; i < nodes.length; i++) {
    var node = nodes[i];
    if (node.nodeType == 1) {
    result += '\t\t' + (!nodeFirst ? ',' : '') + '"' + node.getAttribute('id') + '": ' + '"' + 
    (node.childNodes.length > 0 && node.childNodes[0].nodeType == 3 ? 
    node.childNodes[0].nodeValue : '').replace(/"/, '\\"') + '"\n';
    nodeFirst = false;
    }
    }
    result += '\t}\n};';
    alert(result);
    </script>
    </body>
    </html>输出:
    var Cont = {
    "Nodes": [
    {
    "Text": "1111"
    ,"ID": "A-2018"
    ,"Deep": "0"
    ,"Sort": "0"
    ,"ParentID": "null"
    ,"Taxis": "0"
    ,"Display": ""
    ,"Class": ""
    ,"Type": "0"
    ,"TCode": ""
    }
    ,{
    "Text": "2222"
    ,"ID": "A-2018"
    ,"Deep": "0"
    ,"Sort": "0"
    ,"ParentID": "null"
    ,"Taxis": "0"
    ,"Display": ""
    ,"Class": ""
    ,"Type": "0"
    ,"TCode": ""
    }
    ]
    ,"Attribute":{
    "Sort": "0"
    ,"SortView": "0"
    ,"TCView": "0"
    ,"Deep": "4"
    ,"TCode": ""
    }
    };
      

  2.   

     <?xml version="1.0" encoding="GB2312" ?>
    <menus>
    <menu name="机构管理"  url="www.baidu.com"  code="001"  parentcode =""></menu>
    <menu name="用户管理"  url=""  code="002"  parentcode =""> 
    <menu name="人员1"  url="www.baidu.com"  code ="061"  parentcode ="002"></menu>
    <menu name="人员2"  url=""  code ="062"  parentcode ="002">
    <menu name="人员22"  url="www.baidu.com"  code ="0622"  parentcode ="062"></menu>
    </menu>
    </menu>
    </menus>
    将这个转换为{"menus":
    [{
    "code":'001',
    "name":"机构管理",
    "url":"www.baidu.com",
    "leaf":1,
    "parentcode": ""
    },{
    "code":"002",
    "name":"用户管理",
    "url":"www.baidu.com",
    "leaf":0,
    "parentcode":""
    },{
    "code":"061",
    "name":"人员1",
    "url":"www.baidu.com",
    "leaf":1,
    "parentcode":"002"
    },{
    "code":"062",
    "name":"人员2",
    "url":"www.baidu.com",
    "leaf":0,
    "parentcode":"002"
    },{
    "code":"0622",
    "name":"人员22",
    "url":"www.baidu.com",
    "leaf":1,
    "parentcode":"062"
    }]
    }
    我转了半天没转明白啊,高手帮帮忙
      

  3.   

    <script type="text/xml">
    <root>
      <node>
      </node>
    </root>
    </script>
      

  4.   

    读XML然后转成对象就好了吧
      

  5.   

    问个问题都舍不得发帖出分,还私信call我。就当再练习一下,大概是这样:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
    </head>
    <body>
    <script type="text/javascript">
    var xml = '<?xml version="1.0" encoding="GB2312" ?>\n\
    <menus>\n\
    <menu name="机构管理" url="www.baidu.com" code="001" parentcode =""></menu>\n\
    <menu name="用户管理" url="" code="002" parentcode ="">\n\
    <menu name="人员1" url="www.baidu.com" code ="061" parentcode ="002"></menu>\n\
    <menu name="人员2" url="" code ="062" parentcode ="002">\n\
    <menu name="人员22" url="www.baidu.com" code ="0622" parentcode ="062"></menu>\n\
    </menu>\n\
    </menu>\n\
    </menus>\
    ';
    if (typeof ActiveXObject == 'function')
    {
        xmldoc = new ActiveXObject('Microsoft.XMLDOM');
        xmldoc.loadXML(xml);
    } else { // firefox
        xmldoc = (new DOMParser()).parseFromString(xml, 'text/xml');
        XMLDocument.prototype.selectNodes = Element.prototype.selectNodes = function (xpath) {
            var xpe = new XPathEvaluator(); 
            var nsResolver = xpe.createNSResolver( this .ownerDocument == null ? 
                this .documentElement : this .ownerDocument.documentElement); 
            var result = xpe.evaluate(xpath, this , nsResolver, 0 , null ); 
            var found = []; 
            var res; 
            while (res = result.iterateNext()) 
                found.push(res); 
            return found; 
        } 
    }var result = [];
    function xml2json(element, level, frist, output) {
    if (!element) return;
    var fieldExists, childExists, i;
    output.push([new Array(level).join("\t"), frist ? "" : ",", "{"].join(""));
    for (i = 0; i < element.attributes.length; i++) {
    var attribute = element.attributes[i];
    output.push([new Array(level + 1).join("\t"), fieldExists ? "," : "", '"', attribute.name, '"', ":", '"', attribute.value, '"'].join(""));
    fieldExists = true;
    }
    for (i = 0; i < element.childNodes.length; i++) {
    var child = element.childNodes[i];
    if (child.nodeType != 1) continue; // 不能是文本节点或者是注释
    if (!childExists) {
    output.push([new Array(level + 1).join("\t"), fieldExists ? "," : "", '"menus": ['].join(""));
    }
    xml2json(child, level + 1, !childExists, output);
    childExists = true;
    }
    if (childExists) {
    output.push([new Array(level).join("\t"), "]}"].join(""));
    } else {
    output.push([new Array(level).join("\t"), "}"].join(""));
    }
    }
    xml2json(xmldoc.documentElement, 1, true, result);
    alert(result.join("\n"));
    </script>
    </body>
    </html>
      

  6.   

    {
    "menus": [
    {
    "name":"机构管理"
    ,"url":"www.baidu.com"
    ,"code":"001"
    ,"parentcode":""
    }
    ,{
    "name":"用户管理"
    ,"url":""
    ,"code":"002"
    ,"parentcode":""
    ,"menus": [
    {
    "name":"人员1"
    ,"url":"www.baidu.com"
    ,"code":"061"
    ,"parentcode":"002"
    }
    ,{
    "name":"人员2"
    ,"url":""
    ,"code":"062"
    ,"parentcode":"002"
    ,"menus": [
    {
    "name":"人员22"
    ,"url":"www.baidu.com"
    ,"code":"0622"
    ,"parentcode":"062"
    }
    ]}
    ]}
    ]}
      

  7.   

    哥们,你这个dom解析了,然后再把解析出来的东西拼字符串就好了三,就是json了,不过我觉得哈,你既然xml都解析了,还不如就用xml作为数据,然后解析xml来显示在你的ui上……