Dec
6
IE处理XML
wxxslt , 15:04 , JS , Comments(0) , Trackbacks(0) , Reads(412) , Via Original
Large | Medium | Small
Large | Medium | Small
最近在学数据结构树的操作,又看下了书,抄了几段代码上来,我是看懂了,各位呢?感觉很像。
movie.html:
IELoadXML.js:
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:
del.js:
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>
<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);
}
}
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);
}
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("该节点没有子节点!");
}
}
var rootE = xmlDOM.documentElement;
if(rootE.hasChildNodes()){
rootE.removeChild(rootE.lastChild);
}else{
alert("该节点没有子节点!");
}
}
RCNA
累


