XML object 转化为 字符串

blf1990 2013-08-20 01:54:11

// 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
谢谢
...全文
113 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
blf1990 2013-08-22
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
<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>
谢谢
xuzuning 2013-08-20
  • 打赏
  • 举报
回复
形如 '<ul>&'+'lt;' 这样的,可写作形如这样的 '<ul><' 因为我是用的是在线编辑器,不拆开来不行
xuzuning 2013-08-20
  • 打赏
  • 举报
回复
<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>

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧