// JQuery ajax 返回 XML Object
var xml = "<response>" + 
            "<dode>" + 
      "<aa>" + 
 "<bb>tyik</bb>" + 
 "<qq>" +
    "<jj>dfdf</jj>" +
 "</qq>" + 
      "</aa>" + 
    "</code>" +
       "<message>message...</message>" + 
     "</response>";
         // 
var xmlDoc = $.parseXML(xml);
        // to string 比如服务器返回了上面的 XML Object, 用JS(Jquery)接收处理.
现在需要把它转化为 JS 字符串 并且 输出到浏览器,要有XML的层级结构。就是把XML原样输出。
我试过用递归不过没写出来, 大家帮我看看, 帮我写个通用的函数( HTML特殊字符可以先不考虑 )
最好不要用 new XMLSerializer().serializeToString(..) 或 IE的 xmlDoc.xml
谢谢JavaScriptXML对象

解决方案 »

  1.   

    <div id=view>fdfd</div>
    <script>
    var xml = "<response>" + 
                "<code>" + 
              "<aa>" + 
             "<bb>tyik</bb>" + 
             "<qq>" +
                "<jj>dfdf</jj>" +
             "</qq>" + 
              "</aa>" + 
            "</code>" +
              "<message>message...</message>" + 
            "</response>";
             // 
    var xmlDoc = $.parseXML(xml);
    $("#view").html(xml_view(xmlDoc));function xml_view(xml) {
      var s = '';
      for(var i=0; i<xml.childNodes.length; i++) {
        if(xml.childNodes[i].nodeType == 1) {
          s += '<ul>&'+'lt;' + xml.childNodes[i].nodeName + '&'+'gt;';
          s += xml_view(xml.childNodes[i]);
          s += '&'+'lt;/' + xml.childNodes[i].nodeName + '&'+'gt;</ul>';
        }else s += xml.childNodes[i].nodeValue;
      }
      return s;
    }
    </script>
      

  2.   

    形如 '<ul>&'+'lt;' 这样的,可写作形如这样的 '<ul>&lt;'
    因为我是用的是在线编辑器,不拆开来不行