javascript操作xml增删改查例子代码hta版.docx
- 文档编号:27415239
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:22
- 大小:18.98KB
javascript操作xml增删改查例子代码hta版.docx
《javascript操作xml增删改查例子代码hta版.docx》由会员分享,可在线阅读,更多相关《javascript操作xml增删改查例子代码hta版.docx(22页珍藏版)》请在冰豆网上搜索。
javascript操作xml增删改查例子代码hta版
包括了stu.hta(是HTML应用程序);
stu.xml
注意下面的HTML代码必须保存为后缀名为hta否则当对XML文件进行操作(增删改)的时候就会提示没有权限!
!
文件stu.hta代码如下:
代码如下:
<html>
<head>
<title>数据岛的显示 </title>
<styletype="text/css">
#findPanel
{
position:
absolute;
width:
220px;
border:
1pxsolid#666666;
}
#findPanelTitle
{
height:
10px;
background-color:
#336699;
cursor:
move;
}
#findPanelContent
{
padding:
5px5px5px5px;
background-color:
#6699CC;
}
</style>
</head>
<body>
<SCRIPTLANGUAGE="JavaScript">
<!
--
varxmlDoc=newActiveXObject("Msxml2.DOMDocument");
xmlDoc.async=false;
xmlDoc.resolveExternals=false;
xmlDoc.load("stu.xml");
//alert(xmlDoc.xml);
//显示数据
functionshow(){
varvbo=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="显示学生信息";
}
}
//查找
functionque(){
document.getElementById("ad").style.visibility="visible";
document.getElementById("qmd").style.visibility="visible";
}
/**
*解析XML文件函数
*@paramxmlDocXML对象
*@paramname属性名称格式如:
user.name
*/
functiongetXMLProperty(xmlDoc,name){
varkeys=name.split('.');
varnode=xmlDoc.documentElement;
for(vari=0;i<keys.length;i++){
varchilds=node.childNodes;
varkey=keys[i];
for(vark=0;k<childs.length;k++){
varchild=childs[k];
if(child.nodeName==key){
if(child.childNodes.length==1){
returnchild.text;
}else{
node=child;
break;
}
}
}
}
return"";
}
//返回父节点(通过节点名字和节点值)
functiongetNod(nam,val){
varnode=xmlDoc.documentElement;
varchilds=node.childNodes;
for(vari=0;i<childs.length;i++)
{
varchild=childs[i];
varchildms=child.childNodes;
for(vark=0;k<childms.length;k++){
varchildm=childms[k];
if(childm.nodeName==nam&&(childm.text).substring(0,6)==val){
//alert(val);
returnchild;
}
}
}
return'';
}
//通过父节点和子节点名返回子节点值
functiongetNodVal(nods,nam){
varchildms=nods.childNodes;
for(vark=0;k<childms.length;k++){
varchildm=childms[k];
if(childm.nodeName==nam){
//alert(childm.text);
returnchildm.text;
}
}
return'';
}
//通过父节点和子节点名返回子节点
functiongetCurNod(nods,nam){
varchildms=nods.childNodes;
for(vark=0;k<childms.length;k++){
varchildm=childms[k];
if(childm.nodeName==nam){
//alert(childm.text);
returnchildm;
}
}
return'';
}
//开始查找
functionquery( /*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位数字!
");
returnfalse;
}
}
//修改
functionmod(){
if(info_check()){
if(xmlDoc.selectSingleNode("/学生管理[学生/学号="+xh.value+"]")){
if(confirm("确认修改?
")){
varnod=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("该学号还没有被占用!
请按学号查询再进行修改!
");
returnfalse;
}
}
}
//新增学生
functionadd(){
varvadd=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();
}
}leNode("/学生管理[学生/学号="+xh.value+"]");
if(node.hasChildNodes()){
varkids=node.childNodes;
for(vari=0;i<kids.length;i++){
del();
}
}
node.parentNode.removeChild(node);
*/
varnod=getNod('学号',xh.value);
nod.parentNode.removeChild(nod);
saveXML();
can();
alert("删除成功!
");
location.reload();
}
}else{
alert("该学号还没有被占用!
请按学号查询再进行修改!
");
returnfalse;
}
}else{
alert("学号非法!
为5位数字!
");
returnfalse;
}
}
//取消新增
functioncan(){
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="新增";
}
//增加结点
functionadd_node(){
varoxh=xmlDoc.createElement("学号");
oxh.appendChild(xmlDoc.createTextNode(xh.value));
varoxm=xmlDoc.createElement("姓名");
oxm.appendChild(xmlDoc.createTextNode(xm.value));
varoxb=xmlDoc.createElement("性别");
oxb.appendChild(xmlDoc.createTextNode(xb.value));
varojg=xmlDoc.createElement("籍贯");
ojg.appendChild(xmlDoc.createTextNode(jg.value));
varoxs=xmlDoc.createElement("学生");
oxs.appendChild(oxh);
oxs.appendChild(oxm);
oxs.appendChild(oxb);
oxs.appendChild(ojg);
varparent=xmlDoc.selectSingleNode("/学生管理");
if(parent.hasChildNodes()){
parent.insertBefore(oxs,parent.firstChild);
}else{
parent.appendChild(oxs);
}
}
//保存XML数字!
");
returnfalse;
}
if(!
rec.exec(xm.value)){
alert("姓名非法!
只能是中文最少两个字,最多不得超过5个字!
");
returnfalse;
}
//alert(xb.value!
="男");
switch(xb.value){
case"男":
break;
case"女":
break;
default:
alert("性别只能是\"男\"或\"女\"!
");returnfalse;
}
if(!
rec.exec(jg.value)){
alert("籍贯非法!
只能是中文最少两个字,最多不得超过5个字!
!
");
returnfalse;
}
returntrue;
}
//-->
</SCRIPT>
<inputid="s"type=buttonvalue="显示学生信息"onclick="show();">
<inputid="que"type=buttonvalue="精确查询"onclick="que();">
<inputid="add"type=buttonvalue="新增"onclick="add();">
<inputid="can"type=buttonvalue="取消"onclick="can();"style="visibility:
hidden">
<br>
<center>
<divid="ad"style="visibility:
hidden">
<table><tr><td>学号:
<inputtype=textid="xh"style="ime-mode:
disabled"size=5maxlength=5onKeyPress="if((event.keyCode<48||event.keyCode>57))event.returnValue=false"><!
--style用于光闭输入法onKeyPress只能输入数字-->
</td><td>姓名:
<inputtype=textid="xm"size=10maxlength=5>
</td><td>性别:
<inputtype=textid="xb"size=5maxlength=5>
</td><td>籍贯:
<inputtype=textid="jg"size=10maxlength=5>
</td>
</tr>
</table>
</div>
<divid="qmd"style="visibility:
hidden">
<table>
<tralign="center">
<td></td>
<td><inputid="que"type=buttonvalue="查询"onclick="query();"></td>
<td><inputid="mod"type=buttonvalue="修改"onclick="mod();"></td>
<td><inputid="del"type=buttonvalue="删除"onclick="del();"></td>
</tr>
</table>
</div>
</center>
<divid="findPanel">
<divid="findPanelTitle">可拖动</div>
<divid="findPanelContent">
<inputtype="text"size="20"value="a"id="key"onkeydown="javascript:
ChckSubmit(event);">
<inputtype="button"value="查找"onclick="javascript:
OnKeySubmit();">
</div>
</div>
<scriptlanguage="javascript">
<!
--
varfindPanel=document.getElementById("findPanel");
varfindPanelTitle=document.getElementById("findPanelTitle");
varfindPanelContent=document.getElementById("findPanelContent");
var
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javascript 操作 xml 增删 例子 代码 hta