使用 javascript 移动 xmlDom 节点

<html>
<header><title>使用 javascript 移动 xmlDom 节点.</title></header>
<body>
<textarea id='log0' rows='10' cols='100'>
<?xml version="1.0"?>
<web-app>
    <welcome-file>3333index.html</welcome-file>
</web-app></textarea>
<textarea id='log1' rows='10' cols='100'>
<?xml version="1.0"?>
<web-app>
  <welcome-file>1111index.html</welcome-file>
  <welcome-file-list>
    <welcome-file>2222index.html</welcome-file>
  </welcome-file-list>		
</web-app></textarea>
<br><button onclick="parse1()"> parse1 </button>  
<button onclick="parse2()"> parse2 </button>
<br>
<textarea id='log2' rows='30' cols='100'></textarea>

<SCRIPT   LANGUAGE=javascript>
function parse1(){
    
  var xmlDoc0 = new   ActiveXObject("Microsoft.XMLDOM");
  xmlDoc0.loadXML( document.getElementById('log0').value );
  
  var xmlDoc1 = new   ActiveXObject("Microsoft.XMLDOM");
  xmlDoc1.loadXML( document.getElementById('log1').value );
    
  if( xmlDoc0.readyState==4 && xmlDoc1.readyState==4){     
    rootNode0 = xmlDoc0.documentElement;   
    xml = '';
    xml = scanXml(rootNode0, xml, 0);      
    document.getElementById('log2').value += 
        "\n\n-------------------------------------xmlDoc0";
    document.getElementById('log2').value += xml;

    rootNode1 = xmlDoc1.documentElement;
    moveElement(rootNode0, rootNode1);    
    xml = '';
    xml = scanXml(rootNode1, xml, 0);      
    document.getElementById('log2').value += 
        "\n\n-------------------------------------xmlDoc1";
    document.getElementById('log2').value += xml;

    xml = '';
    xml = scanXml(rootNode0, xml, 0);      
    document.getElementById('log2').value += 
        "\n\n-------------------------------------xmlDoc0";
    document.getElementById('log2').value += xml;
  }
}

function moveElement( sourceNode, descNode ){  
  while( sourceNode.hasChildNodes() ){
    [b]//将会从 sourceNode 移除节点.[/b]
    descNode.appendChild( sourceNode.firstChild );        
  }
}

function nSpace( n ){
  var space ="";
  for(var i=0; i< n; i++){
    space += "--";
  }
  return space;
}   

function scanXml(xmlNode, xml, level){
  var currXml = '';
  var currLevel = level + 1;  
  //alert( xmlNode.nodeType + ":" + xmlNode.nodeName );
  //nodeType 此属性只读且传回一个数值。有效的数值符合以下的型别: 
  switch( xmlNode.nodeType ){
    case 1: //-ELEMENT
      currXml += "\n" + nSpace( level ) + "<" + xmlNode.nodeName + ">";
      if(xmlNode.hasChildNodes()){
        var   nodeList   =   xmlNode.childNodes;
          for(var   i=0;i<nodeList.length;i++){
            currXml = scanXml(nodeList[i], currXml, currLevel);
          }
      }
      currXml += "\n" + nSpace( level ) + "</" + xmlNode.nodeName + ">";
      break;
    case 2: break;//-ATTRIBUTE 
    case 3: //-TEXT      
      currXml = "\n" + nSpace( level ) + xmlNode.nodeValue;
      break;
    case 4: break;//-CDATA 
    case 5: break;//-ENTITY REFERENCE 
    case 6: break;//-ENTITY 
    case 7: break;//-PI (processing instruction) 
    case 8: break;//-COMMENT 
    case 9: break;//-DOCUMENT 
    case 10: break;//-DOCUMENT TYPE 
    case 11: break;//-DOCUMENT FRAGMENT 
    case 12: break;//-NOTATION 
    default:
  }
  return xml + currXml;
}
</SCRIPT>  
</body>
</html>



参照:  http://www.w3sky.com/2/2550.html    

你可能感兴趣的:(JavaScript,html,xml,Microsoft)