Java更新XML的四种常用方法简介
 出处:CSDN
责任编辑:ljx
 
http://www.pconline.com.cn/pcedu/empolder/gj/java/0408/441419.html

解决方案 »

  1.   

    到blog.csdn.net/beyond_xiruo上去看看!
      

  2.   

    beyond_xiruo的文我看过了不过看不大懂,里面涉及的一些知识点我不大明白。所以才到这里来提问的呀。
      

  3.   

    <script language="javascript">
    var xnode = new Array();
    var x = 0;function SelectNodes(ev, tn)
    {
    var childs = ev.childNodes;
    if (childs==0) return 0;
    for (var i=0;i<childs.length;i++)
    {
    if (childs[i].tagName==tn) return 1;
    }
    return 0;
    }function SelectSingleNode(ev, tn)
    {
    var childs = ev.childNodes;
    if (childs==0) return null;
    for (var i=0;i<childs.length;i++)
    {
    if (childs[i].tagName==tn) return childs[i];
    }
    return null;
    }function OpenElement(e_name, e_id)
    {
    var ev;
    ev = document.getElementsByTagName(e_name);
    for (var i=0;i<ev.length;i++)
    {
    if (String(ev[i].id).toLowerCase()==String(e_id).toLowerCase())
    return ev[i];
    }
    var nev = document.createElement(e_name);
    nev.id = e_id;
    document.body.insertAdjacentElement("beforeEnd", nev);
    return nev;
    }function OpenMenu(nodes)
    {
    var ele = event.srcElement;
    var parentMenu = new Object();
    if (ele.tagName=="xml")
    {
    parentMenu = OpenElement("div", "xmenu");
    }
    else if (ele.tagName=="IMG" || ele.tagName=="A")
    {
    parentMenu = ele.parentNode;
    }
    else if (ele.tagName=="DIV")
    {
    parentMenu = ele;
    }
    else
    {
    return;
    }
    if (SelectNodes(parentMenu, "DIV"))
    {
    //alert("123");
    var childs = parentMenu.childNodes;
    var display = "";
    for (var i=0;i<childs.length;i++)
    {
    if (childs[i].tagName=="DIV")
    {
    display = childs[i].style.display;
    childs[i].style.display = (display=="none")?"":"none";
    }
    }
    var img = SelectSingleNode(parentMenu, "IMG");
    if (img==null) return;
    img.src = (display=="none")?"menu1.gif":"menu0.gif";
    }
    else
    {
    var childs = nodes.childNodes;
    if (childs.length==0) return;
    var left = parseInt(parentMenu.style.left);
    if (isNaN(left)) left = 0;
    for (var i=0;i<childs.length;i++)
    {
    xnode[x] = childs[i];
    var menu = OpenElement("div", "menu" + x);
    parentMenu.insertAdjacentElement("beforeEnd", menu);
    menu.style.left = left + 10;
    menu.style.position = "relative";
    menu.style.display = "";
    if (childs[i].hasChildNodes())
    {
    menu.innerHTML = '<img src="menu0.gif" onclick="OpenMenu(xnode[' + x + '])" style="cursor:hand" /> <a href="javascript:" onclick="OpenMenu(xnode[' + x + '])">' + childs[i].getAttribute("name") + '</a>';
    }
    else
    {
    menu.innerHTML = '<img src="menu1.gif" /> <a href="javascript:">' + childs[i].getAttribute("name") + '</a>';
    }
    x++;
    }
    var img = SelectSingleNode(parentMenu, "IMG");
    if (img==null) return;
    img.src = "menu1.gif";
    }
    }
    </script><script language="javascript" for="menuxml" event="onreadystatechange">
    var xmenu = OpenElement("div", "xmenu");
    var state = this.readyState;
    switch (state)
    {
    case "complete":
    xmenu.innerHTML = "";
    if (this.parseError.errorCode)
    {
    alert("HOHO:" + this.parseError.reason);
    }
    else
    {
    var root = this.documentElement;
    OpenMenu(root);
    }
    break;
    default:
    xmenu.innerHTML = state;
    break;
    }
    </script>
    </head><body>
    <xml id="menuxml" src="xmenu.xml"></xml>
    <div id="hint"></div>
    </body></html>
    -----------------------------------------------------------------------------
    <?xml version="1.0"?>
    <menu>
    <menu name="User Manager 0">
    <menu name="Profile Manager" />
    <menu name="Password Manager" />
    <menu name="User Liste" />
    <menu name="User Manager 1">
    <menu name="Profile Manager" />
    <menu name="Password Manager" />
    <menu name="User Liste" />
    <menu name="User Manager 2">
    <menu name="User Liste" />
    <menu name="User Liste" />
    </menu>
    </menu>
    </menu>
    <menu name="User Manager">
    <menu name="Profile Manager" />
    <menu name="Password Manager" />
    <menu name="User Liste" />
    </menu>
    <menu name="User Manager">
    <menu name="Profile Manager" />
    <menu name="Password Manager" />
    <menu name="User Liste" />
    </menu>
    <menu name="User Manager">
    <menu name="Profile Manager" />
    <menu name="Password Manager" />
    <menu name="User Liste" />
    </menu>
    <menu name="User Manager">
    <menu name="Profile Manager" />
    <menu name="Password Manager" />
    <menu name="User Liste" />
    </menu>
    <menu name="User Manager">
    <menu name="Profile Manager" />
    <menu name="Password Manager" />
    <menu name="User Liste" />
    </menu>
    </menu>
      

  4.   

    楼主你把上面这些代码拷贝下去运行一下,保证你半个小时之内研究明白,注意这几个地方<script language="javascript" for="menuxml" event="onreadystatechange">OpenElement 这个函数是JavaScript里面自己写的函数 不是微软XML的方法出效果的代码 在 menu.innerHTML 这几处我觉得这个是最简单的XML处理方法了