编程就是这个样子

学的老,活到老
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

js 调换 xml 中的两行数据

Posted on 2008-12-29 22:45  寿  阅读(162)  评论(0编辑  收藏  举报

js 调换 xml 中的两行数据,找到指定行,后在指定行行后插入新行,不过现在还没有实现这个功能,只是删除了这行以后的行,将新的行附加上去,再把删除的行附加上。以后我要把这个遗留的问题搞定呢。

<script type="text/javascript">
function Load()
{
 var xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
 xml+="<Song>";
 xml+="<Item   ID=\"1\"> </Item>";
 xml+="<Item   ID=\"2\"> </Item>";
 xml+="<Item   ID=\"3\"> </Item>";
 xml+="<Item   ID=\"4\"> </Item>";
  xml+="<Item   ID=\"5\"> </Item>";
 xml+="<Item   ID=\"6\"> </Item>";
 xml+="</Song>";

 var oDoc = new ActiveXObject("MSXML2.DOMDocument");
 oDoc.loadXML(xml);
 var items = oDoc.selectNodes("//Song/Item");

 for(var i=0;i<items.length;i++)
 {
     if(items[i].getAttribute("ID")=="4")
     {
         var nodes = new Array();
         nodes.push(items[i].previousSibling);
         var pnode = items[i].parentNode;
        
         var flag = true;
         var item = items[i];
         while(flag)
         {
             if(item.nextSibling!=null)
             {
                nodes.push(item.nextSibling);
                item = item.nextSibling;
             }
             else
             {
                 flag = false;
             }
         }
        
         for(var i=0;i<nodes.length;i++)
         {
            pnode.removeChild(nodes[i]);
         }
        
         for(i=0;i<nodes.length;i++)
         {
            pnode.appendChild(nodes[i]);
         }
     }
 }
 window.alert(oDoc.xml);
 }
</script>