伴水清洁工给的:用JS 实现从任意xml文件提取数据成层状显示

本文介绍了一种使用JavaScript从XML文件中提取数据的方法,并将数据转换为HTML列表进行展示。提供了两种不同的实现方式,一种是递归遍历XML节点,另一种则是通过正则表达式解析XML字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

伴水清洁工给的:用JS 实现从任意xml文件提取数据成层状显示

 

http://topic.youkuaiyun.com/u/20080921/15/655b8f3c-3fbe-42aa-a53a-630bfdb1ae9b.html

 

别人的东西,不是很完善,不过还是收藏一下。

 

  1. <html>
  2. <body></body>
  3. <script>
  4. function Xml2Html(file)
  5. {
  6.     var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
  7.     xmldoc.load(file);
  8.     var result = "<ul>" + Node2Html(xmldoc.documentElement) + "</ul>";
  9.     return result;
  10. }
  11. function Node2Html(node)
  12. {
  13.     var result = "<li>";
  14.     if (node.nodeType == 3)
  15.         return ""; // 如果是 Text
  16.     else result += node.nodeName;
  17.     if (node.childNodes.length > 0)
  18.     {
  19.         result += "<ul>";
  20.         for (var i = 0; i < node.childNodes.length; i++)
  21.             result += Node2Html(node.childNodes[i]);
  22.         result += "</ul>";
  23.     }
  24.     result += "</li>";
  25.     return result;
  26. }
  27. document.body.innerHTML = Xml2Html("a.xml");
  28. </script>
  29. </html>

 

zjm1126qqcom 的代码:

 

 

  1. 只需把xml和此文件放在同一目录下即可(名称要一样,此例是a.xml) 
  2. HTML code<html>
  3.     <script>
  4.         var a = new ActiveXObject("Microsoft.XMLDOM");
  5.         a.load("a.xml");
  6.         var b = a.xml;
  7.         var c = /<[^?]/S*?>|<[^?]*?/s/b/g;
  8.         var d = b.match(c).toString();
  9.         var e = /<|>|[ ]/g;
  10.         var f = d.replace(e, "");
  11.         var g = f.split(",");
  12.         var str;
  13.         document.write(g);
  14.         
  15.         function bb(b){
  16.             var r = b.length;
  17.             var x = [];
  18.             for (var i = 0; i < r; i++) {
  19.                 for (var j = i; j < r; j++) {
  20.                     if (b[j] == "/" + b[i]) {
  21.                         if (j - i > 1) {
  22.                             b[i] = "<li>" + b[i];
  23.                             x[i] = b[i] + "<ul>";
  24.                             x[j] = "</ul></li>";
  25.                         }
  26.                         else {
  27.                             b[i] = "<li>" + b[i] + "</li>";
  28.                         }
  29.                         b[j] = "";
  30.                         break;
  31.                     }
  32.                 }
  33.             }
  34.             for (var i = 0; i < x.length; i++) {
  35.                 if (x[i] != null) 
  36.                     b[i] = x[i];
  37.                 
  38.             }
  39.             b.splice(0, 0, "<ul>");
  40.             b.splice(b.length, 0, "</ul>");
  41.             return b.join("");
  42.         }
  43.         document.body.innerHTML = bb(g);
  44.     </script>
  45. </html>

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值