伴水清洁工给的:用JS 实现从任意xml文件提取数据成层状显示
http://topic.youkuaiyun.com/u/20080921/15/655b8f3c-3fbe-42aa-a53a-630bfdb1ae9b.html
别人的东西,不是很完善,不过还是收藏一下。
- <html>
- <body></body>
- <script>
- function Xml2Html(file)
- {
- var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
- xmldoc.load(file);
- var result = "<ul>" + Node2Html(xmldoc.documentElement) + "</ul>";
- return result;
- }
- function Node2Html(node)
- {
- var result = "<li>";
- if (node.nodeType == 3)
- return ""; // 如果是 Text
- else result += node.nodeName;
- if (node.childNodes.length > 0)
- {
- result += "<ul>";
- for (var i = 0; i < node.childNodes.length; i++)
- result += Node2Html(node.childNodes[i]);
- result += "</ul>";
- }
- result += "</li>";
- return result;
- }
- document.body.innerHTML = Xml2Html("a.xml");
- </script>
- </html>
zjm1126qqcom 的代码:
- 只需把xml和此文件放在同一目录下即可(名称要一样,此例是a.xml)
- HTML code<html>
- <script>
- var a = new ActiveXObject("Microsoft.XMLDOM");
- a.load("a.xml");
- var b = a.xml;
- var c = /<[^?]/S*?>|<[^?]*?/s/b/g;
- var d = b.match(c).toString();
- var e = /<|>|[ ]/g;
- var f = d.replace(e, "");
- var g = f.split(",");
- var str;
- document.write(g);
- function bb(b){
- var r = b.length;
- var x = [];
- for (var i = 0; i < r; i++) {
- for (var j = i; j < r; j++) {
- if (b[j] == "/" + b[i]) {
- if (j - i > 1) {
- b[i] = "<li>" + b[i];
- x[i] = b[i] + "<ul>";
- x[j] = "</ul></li>";
- }
- else {
- b[i] = "<li>" + b[i] + "</li>";
- }
- b[j] = "";
- break;
- }
- }
- }
- for (var i = 0; i < x.length; i++) {
- if (x[i] != null)
- b[i] = x[i];
- }
- b.splice(0, 0, "<ul>");
- b.splice(b.length, 0, "</ul>");
- return b.join("");
- }
- document.body.innerHTML = bb(g);
- </script>
- </html>