Dec 6

IE处理XML 不指定

wxxslt , 15:04 , JS , Comments(0) , Trackbacks(0) , Reads(412) , Via Original Large | Medium | Small
最近在学数据结构树的操作,又看下了书,抄了几段代码上来,我是看懂了,各位呢?感觉很像。

movie.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>增加新电影</title>
<script src="IELoadXML.js"></script>
<script src="view.js"></script>
<script src="add.js"></script>
<script src="del.js"></script>
<script language="javascript" type="text/javascript">
    var xmlDOM = loadXML("movie.xml");
</script>
</head>
<body onload="refresh()">
<center>
<form id="movieDOM" name="movieDOM" action="#" method="get">
<h2>XML文档显示</h2>
<textarea id="view" name="view" rows="10" cols="50" ></textarea>
<hr />
<br />
ID:<input type="text" name="id" id="id" size=20/><br />
名称:<input type="text" name="name" id="name" size=20/><br />
</form>
<input type="submit" value="增加新电影" onclick="add();refresh()"/>
<input type="submit" value="删除最后一个" onclick="delLast();refresh()"/>
<input type="submit" value="刷新" onclick="refresh();"/>
</center>
</body>
</html>



IELoadXML.js:

function loadXML(xmlDoc){
  try{
    var _xmlDOM;
    _xmlDOM= new ActiveXObject("Microsoft.XMLDOM");
    _xmlDOM.async = false;
    _xmlDOM.load(xmlDoc);
    alert("加载成功");
    return(_xmlDOM);
  }catch(e){
    alert(e.message);
    return(null);
  }
}




view.js:


function dump(string){
  var current = document.movieDOM.view.value;
  current += string;
  document.movieDOM.view.value = current;
}
function view(node){
  var type = node.nodeType;
  if(type == 1){
    dump("\<" + node.tagName);
    var attr = node.attributes;
    if(attr){
      var count = attr.length;
      var index = 0;
      while(index < count){
        attribute = attr[index];
        if(attribute)
          dump(" "+attribute.name+"="+attribute.value);
        index++;        
      }
    }
    if(node.hasChildNodes()){
      dump(">\n");
      var _ChildNodes=node.childNodes;
      var length = _ChildNodes.length;
      var count = 0;
      while(count < length){
        _ChildNode = _ChildNodes[count];
        view(_ChildNode);
        count++;      
      }
      dump("</"+node.tagName+">\n");
    }
    else dump("/>\n");
  }else if(type == 3){
    dump(node.data+"\n");
  }
}
function refresh(){
  document.movieDOM.view.value = '';
  view(xmlDOM.documentElement);
}




add.js:

function add(){
    var rootE = xmlDOM.documentElement;
    var newMovie = xmlDOM.createElement('movie');
    var newID =  xmlDOM.createElement('id');
    var id = xmlDOM.createTextNode(document.movieDOM.id.value);
    newID.appendChild(id);
    newMovie.appendChild(newID);
    var newName = xmlDOM.createElement('name');
    var name = xmlDOM.createTextNode(document.movieDOM.name.value);
    newName.appendChild(name);
    newMovie.appendChild(newName);
    rootE.appendChild(newMovie);
}




del.js:

function delLast(){
    var rootE = xmlDOM.documentElement;
    if(rootE.hasChildNodes()){
      rootE.removeChild(rootE.lastChild);
    }else{
      alert("该节点没有子节点!");
    }
}
Tags: ,
Add a comment
Emots
emotemotemotemot
emotemotemotemot
emotemotemotemot
emotemotemotemot
emotemotemotemot
Enable HTML
Enable UBB
Enable Emots
Hidden
Remember
Nickname   Password   Optional
Site URI   Email   [Register]