亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

javascript操作xml(增刪改查)例子代碼hta版

2020-01-25 19:35:56
字體:
來源:轉載
供稿:網友
注意下面的HTML代碼必須保存為后綴名為hta否則當對XML文件進行操作(增刪改)的時候就會提示沒有權限!!
 

包括了stu.hta(是HTML應用程序); 
     stu.xml 
注意下面的HTML代碼必須保存為后綴名為hta否則當對XML文件進行操作(增刪改)的時候就會提示沒有權限!! 

文件stu.hta代碼如下: 

復制代碼代碼如下:

<html> 
<head> 
<title> 數據島的顯示 </title> 
<style type="text/css"> 
#findPanel 

position:absolute; 
width:220px; 
border:1px solid #666666; 

#findPanelTitle 

height:10px; 
background-color:#336699; 
cursor:move; 

#findPanelContent 

padding:5px 5px 5px 5px; 
background-color:#6699CC; 

</style> 
</head> 
<body> 
<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument"); 
xmlDoc.async = false; 
xmlDoc.resolveExternals = false; 
xmlDoc.load("stu.xml"); 
//alert(xmlDoc.xml); 
//顯示數據 
function show(){ 
var vbo = document.getElementById("s").value; 
if(vbo=="顯示學生信息"){ 
document.getElementById('info').style.visibility='visible'; 
document.getElementById("s").value="隱藏學生信息"; 
}else{ 
document.getElementById('info').style.visibility='hidden'; 
document.getElementById("s").value="顯示學生信息"; 


//查找 
function que(){ 
document.getElementById("ad").style.visibility="visible"; 
document.getElementById("qmd").style.visibility="visible"; 

/** 
* 解析XML文件函數 
* @param xmlDoc XML對象 
* @param name 屬性名稱 格式如:user.name 
*/ 
function getXMLProperty(xmlDoc, name) { 
var keys = name.split('.'); 
var node = xmlDoc.documentElement; 
for(var i=0; i<keys.length; i++) { 
var childs = node.childNodes; 
var key = keys[i]; 
for(var k=0; k<childs.length; k++) { 
var child = childs[k]; 
if(child.nodeName == key) { 
if(child.childNodes.length == 1) { 
return child.text; 
} else { 
node = child; 
break; 




return ""; 

//返回父節點(通過節點名字和節點值) 
function getNod(nam,val){ 
var node = xmlDoc.documentElement; 
var childs = node.childNodes; 
for (var i=0;i<childs.length ;i++ ) 

var child = childs[i]; 
var childms = child.childNodes; 
for(var k=0;k<childms.length;k++){ 
var childm = childms[k]; 
if(childm.nodeName == nam && (childm.text).substring(0,6)==val){ 
//alert(val); 
return child; 



return ''; 

//通過父節點和子節點名返回子節點值 
function getNodVal(nods,nam){ 
var childms = nods.childNodes; 
for(var k=0;k<childms.length;k++){ 
var childm = childms[k]; 
if(childm.nodeName == nam){ 
//alert(childm.text); 
return childm.text; 


return ''; 

//通過父節點和子節點名返回子節點 
function getCurNod(nods,nam){ 
var childms = nods.childNodes; 
for(var k=0;k<childms.length;k++){ 
var childm = childms[k]; 
if(childm.nodeName == nam){ 
//alert(childm.text); 
return childm; 


return ''; 

//開始查找 
function query(){ 
var renum = /^/d{5}$/; 
if(renum.exec(xh.value)){ 
if(xmlDoc.selectSingleNode("/學生管理[學生/學號="+xh.value+"]")){ 
var nod = getNod('學號',xh.value); 
//getNodVal(nod,'姓名'); 
//getNodVal(nod,'性別'); 
//getNodVal(nod,'籍貫'); 
/*document.getElementById("xm").value=xmlDoc.selectSingleNode("/學生管理[學生/學號="+xh.value+"]").selectSingleNode("學生/姓名").text; 
document.getElementById("xb").value=xmlDoc.selectSingleNode("/學生管理[學生/學號="+xh.value+"]").selectSingleNode("學生/性別").text; 
document.getElementById("jg").value=xmlDoc.selectSingleNode("/學生管理[學生/學號="+xh.value+"]").selectSingleNode("學生/籍貫").text; 
document.getElementById("xh").disabled="true"; */ 
document.getElementById("xm").value=getNodVal(nod,'姓名'); 
document.getElementById("xb").value= getNodVal(nod,'性別'); 
document.getElementById("jg").value= getNodVal(nod,'籍貫'); 
}else{ 
alert("該學號還沒有被占用!"); 

}else{ 
alert("學號非法!學號5位數字!"); 
return false; 


//修改 
function mod(){ 
if(info_check()){ 
if(xmlDoc.selectSingleNode("/學生管理[學生/學號="+xh.value+"]")){ 
if(confirm("確認修改?")){ 
var nod = getNod('學號',xh.value); 
getCurNod(nod,'姓名').text=xm.value; 
getCurNod(nod,'性別').text=xb.value; 
getCurNod(nod,'籍貫').text=jg.value; 
/* 
xmlDoc.selectSingleNode("/學生管理[學生/學號="+xh.value+"]").selectSingleNode("學生/姓名").text=xm.value; 
xmlDoc.selectSingleNode("/學生管理[學生/學號="+xh.value+"]").selectSingleNode("學生/性別").text=xb.value; 
xmlDoc.selectSingleNode("/學生管理[學生/學號="+xh.value+"]").selectSingleNode("學生/籍貫").text=jg.value; 
*/ 
saveXML(); 
//document.getElementById("xh").disabled="false"; 
document.getElementById("xh").value=""; 
document.getElementById("xm").value=""; 
document.getElementById("xb").value=""; 
document.getElementById("jg").value=""; 
document.getElementById("ad").style.visibility="hidden"; 
document.getElementById("qmd").style.visibility="hidden"; 
alert("修改成功!"); 
location.reload(); 

}else{ 
alert("該學號還沒有被占用!請按學號查詢再進行修改!"); 
return false; 



//新增學生 
function add(){ 
var vadd = document.getElementById("add").value; 
if(vadd=="新增"){ 
document.getElementById("xh").value=""; 
document.getElementById("xm").value=""; 
document.getElementById("xb").value=""; 
document.getElementById("jg").value=""; 
document.getElementById("qmd").style.visibility="hidden"; 
document.getElementById('info').style.visibility='hidden'; 
document.getElementById("s").value="顯示學生信息"; 
document.getElementById("ad").style.visibility="visible"; 
document.getElementById("add").value="保存"; 
document.getElementById("can").style.visibility="visible"; 
}else{ 
if(info_check()){ 
add_node(); 
saveXML(); 
document.getElementById("xh").value=""; 
document.getElementById("xm").value=""; 
document.getElementById("xb").value=""; 
document.getElementById("jg").value=""; 
document.getElementById("ad").style.visibility="hidden"; 
document.getElementById("qmd").style.visibility="hidden"; 
document.getElementById("add").value="新增"; 
alert("新增成功!"); 
location.reload(); 



//刪除學生 
function del(){ 
var renum = /^/d{5}$/; 
if(renum.exec(document.getElementById("xh").value)){ 
if(xmlDoc.selectSingleNode("/學生管理[學生/學號="+xh.value+"]")){ 
if(confirm("確認刪除?")){ 
/*var node = xmlDoc.selectSingleNode("/學生管理[學生/學號="+xh.value+"]"); 
if(node.hasChildNodes()){ 
var kids = node.childNodes; 
for(var i=0;i<kids.length;i++){ 
del(); 


node.parentNode.removeChild(node); 
*/ 
var nod = getNod('學號',xh.value); 
nod.parentNode.removeChild(nod); 
saveXML(); 
can(); 
alert("刪除成功!"); 
location.reload(); 

}else{ 
alert("該學號還沒有被占用!請按學號查詢再進行修改!"); 
return false; 

}else{ 
alert("學號非法!為5位數字!"); 
return false; 


//取消新增 
function can(){ 
document.getElementById("xh").value=""; 
document.getElementById("xm").value=""; 
document.getElementById("xb").value=""; 
document.getElementById("jg").value=""; 
document.getElementById("ad").style.visibility="hidden"; 
document.getElementById("can").style.visibility="hidden"; 
document.getElementById("qmd").style.visibility="hidden"; 
document.getElementById("add").value="新增"; 

//增加結點 
function add_node(){ 
var oxh = xmlDoc.createElement("學號"); 
oxh.appendChild(xmlDoc.createTextNode(xh.value)); 
var oxm = xmlDoc.createElement("姓名"); 
oxm.appendChild(xmlDoc.createTextNode(xm.value)); 
var oxb = xmlDoc.createElement("性別"); 
oxb.appendChild(xmlDoc.createTextNode(xb.value)); 
var ojg = xmlDoc.createElement("籍貫"); 
ojg.appendChild(xmlDoc.createTextNode(jg.value)); 
var oxs = xmlDoc.createElement("學生"); 
oxs.appendChild(oxh); 
oxs.appendChild(oxm); 
oxs.appendChild(oxb); 
oxs.appendChild(ojg); 
var parent = xmlDoc.selectSingleNode("/學生管理"); 
if(parent.hasChildNodes()) { 
parent.insertBefore(oxs,parent.firstChild); 
}else{ 
parent.appendChild(oxs); 


//保存XML 
function saveXML(){ 
xmlDoc.save("stu.xml"); 

//驗證新增數據 
function info_check(){ 
var renum = /^/d{5}$/; 
var rec = /^[/u4E00-/u9FA5]{2,5}$/; 
if(!renum.exec(document.getElementById("xh").value)){ 
alert("學號非法!為5位數字!"); 
return false; 

if(!rec.exec(xm.value)){ 
alert("姓名非法!只能是中文最少兩個字,最多不得超過5個字!"); 
return false; 

//alert(xb.value!="男"); 
switch(xb.value){ 
case "男":break; 
case "女":break; 
default:alert("性別只能是/"男/"或/"女/"!"); return false; 

if(!rec.exec(jg.value)){ 
alert("籍貫非法!只能是中文最少兩個字,最多不得超過5個字!!"); 
return false; 

return true; 

//--> 
</SCRIPT> 
<input id="s" type=button value="顯示學生信息" onclick="show();"> 
<input id="que" type=button value="精確查詢" onclick="que();"> 
<input id="add" type=button value="新增" onclick="add();"> 
<input id="can" type=button value="取消" onclick="can();" style="visibility:hidden"> 
<br> 
<center> 
<div id="ad" style="visibility:hidden"> 
<table><tr><td>學號: 
<input type=text id="xh" style="ime-mode:disabled" size=5 maxlength=5 onKeyPress="if ((event.keyCode<48 || event.keyCode>57)) event.returnValue=false"><!-- style 用于光閉輸入法 onKeyPress 只能輸入數字--> 
</td><td>姓名: 
<input type=text id="xm" size=10 maxlength=5> 
</td><td>性別: 
<input type=text id="xb" size=5 maxlength=5> 
</td><td>籍貫: 
<input type=text id="jg" size=10 maxlength=5> 
</td> 
</tr> 
</table> 
</div> 
<div id="qmd" style="visibility:hidden"> 
<table> 
<tr align="center"> 
<td></td> 
<td><input id="que" type=button value="查詢" onclick="query();"></td> 
<td><input id="mod" type=button value="修改" onclick="mod();"></td> 
<td><input id="del" type=button value="刪除" onclick="del();"></td> 
</tr> 
</table> 
</div> 
</center> 
<div id="findPanel"> 
<div id="findPanelTitle">可拖動</div> 
<div id="findPanelContent"> 
<input type="text" size="20" value="a" id="key" onkeydown="javascript:ChckSubmit(event);"> 
<input type="button" value="查找" onclick="javascript:OnKeySubmit();"> 
</div> 
</div> 
<script language="javascript"> 
<!-- 
var findPanel = document.getElementById("findPanel"); 
var findPanelTitle = document.getElementById("findPanelTitle"); 
var findPanelContent = document.getElementById("findPanelContent"); 
var findPanel_orgnX = 50; 
var findPanel_orgnY = 50; 
//設置物件位置 
findPanel.style.pixelLeft = document.body.scrollLeft + findPanel_orgnX; 
findPanel.style.pixelTop = document.body.scrollTop + findPanel_orgnY; 
//================================================================================ 
var foundCnt = 0; //已經找到了的結果的數量 
//查找入口函數 
function Find(key) 

if (key == "") 

return; 

if (document.all) 

IEFind(key); 

else 

NSFind(key); 


//瀏覽器為 IE 系列 
function IEFind(key) 

var rng = document.body.createTextRange(); 
var found = false; 
for (var i=0; i<=foundCnt && (found=rng.findText(key)); i++) 

rng.moveStart("character", 1); //找到,后移一位以查找下一個 

if (found) 

rng.moveStart("character", -1); 
rng.findText(key); 
rng.select(); 
rng.scrollIntoView(); 
foundCnt++; 

else 

if (foundCnt > 0) 

//已經查找一遍,找到有符合條件的結果,重新開始查找 
foundCnt = 0; 
IEFind(key); 

else 

//已經查找一遍,沒有找到符合條件的結果 
alert("文檔搜索完畢。"); 



//瀏覽器為 NS 系列 
function NSFind(key) 

if (window.find(key)) 

foundCnt++; 

else 

var found = false; 
while (window.find(key, false, true)) 

found = true; 

if (found) 

//已經查找一遍,找到有符合條件的結果,重新查找也已經開始 
foundCnt = 1; 

else 

//已經查找一遍,沒有找到符合條件的結果 
alert("文檔搜索完畢。"); 



function OnKeySubmit() 

var key = document.getElementById("key"); 
Find(key.value); 

function ChckSubmit(e) 

if (e.keyCode == 13) 

OnKeySubmit(); 


//================================================================================ 
function RePosFindPanel() 

findPanel.style.pixelLeft = document.body.scrollLeft + findPanel_orgnX; 
findPanel.style.pixelTop = document.body.scrollTop + findPanel_orgnY; 

document.body.onscroll = RePosFindPanel; 
document.body.onresize = RePosFindPanel; 
//================================================================================ 
//拖拽過程中相關變量 
var draging = false; //是否處于拖拽中 
var offsetX = 0; //X方向左右偏移量 
var offsetY = 0; //Y方向上下偏移量 
//準備拖拽 
function BeforeDrag() 

if (event.button != 1) 

return; 

offsetX = document.body.scrollLeft + event.clientX-findPanel.style.pixelLeft; 
offsetY = document.body.scrollTop + event.clientY-findPanel.style.pixelTop; 
draging = true; 

//拖拽中 
function OnDrag() 

if(!draging) 

return; 

//更新位置 
findPanel_orgnX = event.clientX-offsetX; 
findPanel_orgnY = event.clientY-offsetY; 
event.returnValue = false; 
findPanel.style.pixelLeft = document.body.scrollLeft + event.clientX-offsetX; 
findPanel.style.pixelTop = document.body.scrollTop + event.clientY-offsetY; 

//結束拖拽 
function EndDrag() 

if (event.button != 1) 

return; 

draging = false; 

findPanelTitle.onmousedown = BeforeDrag; 
document.onmousemove = OnDrag; 
findPanelTitle.onmouseup = EndDrag; 
//--> 
</script> 
<xml id="stu" src="stu.xml"> 
</xml> 
<center> 
<div id="info" style="visibility:hidden"> 
<table DATASRC=#stu border=1 style="background-color:#a9eeef; Border-color 
:red;" > 
<caption><h2>學生信息管理</h2></caption> 
<thead>  
<th>學號</th> 
<th>姓名</th>   
<th>性別</th>   
<th>籍貫</th>  
</thead>  
<tr>  
<td>   
<div DATAFLD="學號">   
</td>   
<td>   
<div DATAFLD="姓名"> 
</td>   
<td>   
<div DATAFLD="性別">   
</td>   
<td>   
<div DATAFLD="籍貫">  
</td>  
</tr>  
</table> 
</div> 
</center> 
</body> 
</html> 

xml文件如下(stu.xml) 
復制代碼代碼如下:

<?xml version="1.0" encoding="gb2312"?> 
<學生管理> 
<學生> 
 <學號>97001</學號> 
 <姓名>王五</姓名> 
 <性別>男 </性別> 
 <籍貫>上海</籍貫> 
</學生> 
<學生> 
 <學號>97002</學號> 
 <姓名>李四 </姓名> 
 <性別>男 </性別> 
 <籍貫>浙江 </籍貫> 
</學生> 
<學生> 
  <學號>97006 </學號> 
  <姓名>張三 </姓名> 
  <性別>男</性別> 
  <籍貫>浙江</籍貫> 
</學生> 
</學生管理> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久| 欧美做爰性生交视频| 欧美激情xxxxx| 亚洲精品www久久久| 亚洲xxxx18| 国产精品久久久久aaaa九色| 国产在线观看精品一区二区三区| 国产ts一区二区| 欧美日韩一区二区在线播放| 2019最新中文字幕| 中文字幕久久久av一区| 国产+人+亚洲| 欧美成人合集magnet| 91精品久久久久久久久久久久久久| 亚洲视频视频在线| 8090成年在线看片午夜| 日韩在线观看免费| 久久大大胆人体| 欧美—级高清免费播放| 九九精品在线播放| 色爱精品视频一区| 国内精品美女av在线播放| 国产精品久久网| 日韩在线视频二区| 日韩av电影免费观看高清| 欧美老女人在线视频| 欧美性69xxxx肥| 国产精品专区h在线观看| 狠狠躁18三区二区一区| 日本人成精品视频在线| 精品亚洲va在线va天堂资源站| 亚洲精品网址在线观看| 日韩精品在线观| 亚洲字幕在线观看| 中文字幕综合在线| 亚洲春色另类小说| 亚洲精品美女视频| 久久精品中文字幕一区| 日韩av网站在线| 国产精品久久久av久久久| 原创国产精品91| 91久久国产精品91久久性色| 欧美在线观看一区二区三区| 国产精品aaa| 久久亚洲精品中文字幕冲田杏梨| 国产丝袜一区二区| 91亚洲精品在线观看| 国产精品一香蕉国产线看观看| 成人高h视频在线| 亚洲国产美女精品久久久久∴| 国产精品久久久久久五月尺| 欧日韩不卡在线视频| 欧美肥老妇视频| 91精品国产网站| 亚洲国产91精品在线观看| 国产日韩中文在线| 国产suv精品一区二区| 日韩欧美国产视频| 欧美亚洲在线视频| 亚洲日韩中文字幕| 亚洲精品国产综合区久久久久久久| 日韩中文字幕在线免费观看| 日本不卡高字幕在线2019| 91在线视频成人| 91精品视频在线| 91高清免费视频| 一本色道久久88精品综合| 国产精品一二区| 欧美日韩中文在线| 久久久久一本一区二区青青蜜月| 91精品国产91久久久久久不卡| 日产精品99久久久久久| 国产成人一区二区三区电影| 久久人体大胆视频| 亚洲无av在线中文字幕| 国内精品国产三级国产在线专| 亚洲欧美国产日韩中文字幕| 欧美亚洲午夜视频在线观看| 亚洲精品一二区| 国产精品免费久久久久久| 欧美精品videos另类日本| 亚洲女人被黑人巨大进入al| 91精品久久久久久久久久另类| 亚洲黄页网在线观看| 中文字幕一区二区三区电影| 亚洲免费福利视频| 亚洲va欧美va在线观看| 国产视频福利一区| 搡老女人一区二区三区视频tv| 成人国产在线激情| 国产精品狠色婷| 国产亚洲a∨片在线观看| 国产亚洲一区二区精品| 成人中文字幕+乱码+中文字幕| 亚洲日韩中文字幕在线播放| 亚洲精品久久久久| 狠狠躁夜夜躁人人躁婷婷91| 欧美亚洲午夜视频在线观看| 国产成人精品综合久久久| 成人黄色片网站| 91国产高清在线| 96精品久久久久中文字幕| 欧美日韩一区二区三区在线免费观看| 久久精品国产亚洲精品| 性欧美视频videos6一9| 日本高清不卡的在线| 日韩av中文字幕在线播放| 国产一区二区三区视频在线观看| 91黄色8090| 国产日本欧美一区二区三区| 精品日韩视频在线观看| 在线电影欧美日韩一区二区私密| 疯狂做受xxxx高潮欧美日本| 国产欧美日韩专区发布| 久久免费观看视频| 久久久亚洲国产天美传媒修理工| 欧美裸体xxxx极品少妇| 成人网在线免费观看| 九九热99久久久国产盗摄| 欧美成人性生活| 久久久久久久久久久免费精品| 91极品女神在线| 亚洲日韩欧美视频| 国产欧洲精品视频| 久久久久这里只有精品| 欧美一二三视频| 97超级碰在线看视频免费在线看| 亚洲人成在线观看| 日本免费久久高清视频| 成人妇女免费播放久久久| 亚洲午夜av电影| 成人免费激情视频| 伊人久久久久久久久久久| 欧美激情第6页| 欧美极品少妇xxxxⅹ免费视频| 最近2019年日本中文免费字幕| 国产成人jvid在线播放| 国产999精品| 国产午夜精品麻豆| 欧美激情国产日韩精品一区18| 日韩欧美在线视频日韩欧美在线视频| 国产精品人成电影在线观看| 亚洲精品自拍视频| 欧美成人午夜影院| 欧美日韩在线视频一区| 日韩美女视频免费在线观看| 久久99精品久久久久久琪琪| 欧美性极品少妇精品网站| 26uuu日韩精品一区二区| 久久视频免费在线播放| 亚洲欧洲第一视频| 日韩av在线免费观看| 久久久久久久999精品视频| 97视频国产在线| 欧美日产国产成人免费图片| 亚洲精品v天堂中文字幕| 青草成人免费视频| 日本一区二区不卡| 蜜臀久久99精品久久久久久宅男| 欧美亚洲在线播放| 国内精品免费午夜毛片| 91sao在线观看国产| 成人av资源在线播放| 成人免费网站在线|