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

首頁 > 編程 > HTA > 正文

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

2020-01-31 15:42:02
字體:
來源:轉載
供稿:網友

包括了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
亚洲国产欧美久久| 久久久在线观看| 日韩欧美成人网| 黑人狂躁日本妞一区二区三区| 国产视频精品久久久| 成人av.网址在线网站| 日韩精品日韩在线观看| 韩国v欧美v日本v亚洲| xxxx性欧美| 欧美性xxxx| 91精品中国老女人| 日本精品视频在线播放| 国产区精品视频| 国产精品久久久久久av下载红粉| 91视频88av| 国产一区二区色| 久久久视频在线| 亚洲精品综合精品自拍| 成人激情在线观看| 亚洲男人天堂2019| 亚洲人线精品午夜| 国产午夜精品一区二区三区| 91高清视频免费观看| 亚洲久久久久久久久久| 日韩精品在线免费播放| 亚洲成人三级在线| 中文字幕av一区| 97精品久久久中文字幕免费| 欧美福利视频在线观看| 91精品国产777在线观看| 91超碰中文字幕久久精品| 欧美一区二区影院| 一本色道久久88综合日韩精品| 久久久精品影院| 国产精品香蕉在线观看| 国产精品久久久久久av福利软件| 在线观看亚洲区| 久久成人av网站| 欧美亚洲国产另类| 欧美成人免费大片| 91爱视频在线| 97在线免费观看| 91沈先生在线观看| 一区二区三区天堂av| 国产精品精品视频一区二区三区| 久久av在线播放| 日韩av网址在线观看| 国产91久久婷婷一区二区| 亚洲成人黄色网| 日韩精品视频在线播放| 成人两性免费视频| 日韩一区视频在线| www.欧美视频| 久久久av免费| 高潮白浆女日韩av免费看| 国产精品人成电影在线观看| 在线播放精品一区二区三区| 国产精品高潮呻吟久久av野狼| 国产婷婷成人久久av免费高清| 欧美日本高清一区| 欧美大尺度激情区在线播放| 国产精品高潮呻吟久久av黑人| 亚洲欧美一区二区三区在线| 亚洲xxxx妇黄裸体| 成人疯狂猛交xxx| 日韩精品中文字幕久久臀| 欧美xxxx做受欧美| 97久久精品国产| 精品一区电影国产| 在线成人一区二区| 国产精品久久久久久久天堂| 日本一区二区三区在线播放| 日本一区二区不卡| 日韩美女免费观看| 久久精品国产成人精品| 97国产精品人人爽人人做| 国产精品99久久久久久久久久久久| 欧美性受xxxx黑人猛交| 欧美日韩国产91| 日韩欧美在线播放| 精品国偷自产在线| 97婷婷涩涩精品一区| 国产精品va在线播放| 亚洲女人天堂色在线7777| 欧美第一黄网免费网站| 欧美色另类天堂2015| 精品久久久久久久久久ntr影视| 久久国产视频网站| 亚洲精品国产精品自产a区红杏吧| 亚洲在线一区二区| 欧美日韩国产91| 亚洲天堂久久av| 中文字幕在线亚洲| 久久伊人精品天天| 日韩视频免费大全中文字幕| 亚洲女人被黑人巨大进入| 国产在线日韩在线| 5566日本婷婷色中文字幕97| 亚洲精品小视频| 亚洲欧美国产日韩中文字幕| 亚洲аv电影天堂网| 亚洲免费成人av电影| 96精品久久久久中文字幕| 亚洲电影av在线| 黄色成人在线播放| 亚洲系列中文字幕| 日韩av理论片| 亚洲人午夜色婷婷| 欧美日韩性视频在线| 亚洲免费av网址| 国产精品高潮呻吟久久av黑人| 日韩一区二区欧美| 亚洲天堂男人的天堂| 久久久久久久久久久免费精品| 日韩av网站在线| 日韩中文字幕视频在线观看| 亚洲一区二区三区视频播放| 亚洲欧美日韩中文视频| 久久五月天色综合| 欧美一区二区三区精品电影| 国产在线日韩在线| 国产成人精品久久二区二区| 2019亚洲男人天堂| 亚洲乱码国产乱码精品精| 日韩av在线网页| 国产午夜精品视频免费不卡69堂| 久久久久久美女| 啊v视频在线一区二区三区| 色噜噜狠狠色综合网图区| 亚洲性生活视频| 5566成人精品视频免费| 国产精品xxx视频| 国产亚洲精品久久久久动| 国产日产欧美精品| 亚洲成人动漫在线播放| 久久久精品电影| 中文字幕日韩有码| 国产一区二区三区在线看| 亚洲欧美综合图区| 久久99精品久久久久久噜噜| 97精品国产91久久久久久| 一区二区三区视频在线| 92福利视频午夜1000合集在线观看| 欧美裸体xxxx极品少妇软件| 亚洲激情在线观看视频免费| 成人中文字幕在线观看| 亚洲人成在线观看网站高清| 欧美激情久久久久| 深夜福利日韩在线看| 51色欧美片视频在线观看| 日韩成人网免费视频| 亚洲国产美女久久久久| 狠狠躁夜夜躁人人躁婷婷91| 精品亚洲一区二区三区在线观看| 欧美在线视频免费观看| 高清亚洲成在人网站天堂| 亚洲美女精品成人在线视频| 亚洲黄色www网站| 久久久av电影| 综合激情国产一区| 日本精品视频网站| 色妞欧美日韩在线| 日韩毛片在线看| 一区二区三区在线播放欧美|