javascript Xml增删改查(IE下)操作实现代码


Posted in Javascript onJanuary 30, 2009

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> 
<title>js操作Xml增删改查(IE下)</title> 
<script type="text/javascript"><!-- 
/*等解决的问题: 
1.xpath到底是定位到哪一层,怎样定位到比如root这一级还是person或name这一级. 
*/ 
var xmlDoc; 
var rootNode; //根结点 
//装载Xml文档 
function loadXml(){ 
try{ 
xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
xmlDoc.async=false;//关闭异步加载 
xmlDoc.load("XmlFile.xml");//load是从文件,loadXML是从字符串. 
rootNode = xmlDoc.documentElement; 
}catch(e) {alert(e.message)} 
} 
//显示内存中的Xml文档 
function outXml(){ 
var divXml=document.getElementById("divXml"); 
divXml.innerHTML=xmlDoc.xml;//显示xml内容,技巧是加个xml后缀.? 
alert(xmlDoc.xml); 
} 
//增 
function addXml(){ 
//叶子结点,设置text值 
var newName = xmlDoc.createElement("name"); 
newName.text = "crane"; 
var newGender = xmlDoc.createElement("gender"); 
newGender.text = "female"; 
//父级结点,用appendChild(childNode); 
var newPerson = xmlDoc.createElement("person"); 
//设置属性id 
newPerson.setAttribute("id","2"); 
newPerson.appendChild(newName); 
newPerson.appendChild(newGender); 
//增加到根结点 
rootNode.appendChild(newPerson); 
alert(xmlDoc.xml); 
} 
//删 
function deleteXml(){ 
//先找到结点 
var singleNode = xmlDoc.selectSingleNode("/root/person[name='tree']"); 
//找到父级再删除 
singleNode.parentNode.removeChild(singleNode); 
alert(xmlDoc.xml); 
} 
//改 
function updateXml(){ 
var singleNode = xmlDoc.selectSingleNode("/root/person[name='crane']"); 
singleNode.childNodes[0].text = "updated"; 
alert(xmlDoc.xml); 
} 
//查 
function queryXml(){ 
//alert(rootNode.nodeName);//节点名 
//alert(rootNode.text);//节点里的全部内容 
//xPath选择节点数组 
//var nodes = xmlDoc.selectNodes("/root/person"); 
//alert(nodes[0].text); 
//选择单个节点 
/*总结 
1."/root/person[name='tree']"等同于"/root[person/name='tree']"即找出来的是person结点 
*/ 
var singleNode = xmlDoc.selectSingleNode("/root/person[gender='female']");//这里的值需要加引号 
alert(singleNode.text); 
alert(singleNode.getAttribute("id")); 
//测试xpath定位 
var sglNode = xmlDoc.selectSingleNode("/root[person/gender='male']");//这里定位不明确.再研究. 
alert(sglNode.text); 
//显示全部xml文档 
//alert(xmlDoc.xml); 
} 
// --></script> 
</head> 
<body> 
<div id="divXml"></div> 
<input type="button" value="load" onclick="loadXml();" /> 
<input type="button" value="show" onclick="outXml();" /> 
<input type="button" value="add" onclick="addXml();" /> 
<input type="button" value="delete" onclick="deleteXml();" /> 
<input type="button" value="update" onclick="updateXml();" /> 
<input type="button" value="query" onclick="queryXml();" /> 
</body> 
</html>

Xml文件:
<?xml version="1.0" encoding="utf-8" ?> 
<root> 
<person id="1"> 
<name>tree</name> 
<gender>male</gender> 
</person> 
</root>
Javascript 相关文章推荐
JavaScript让IE浏览器event对象符合W3C DOM标准
Nov 24 Javascript
再次分享18个非常棒的jQuery表格插件
Apr 10 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
May 27 Javascript
深入理解javascript变量声明
Nov 20 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
Dec 25 Javascript
AngularJS 遇到的小坑与技巧小结
Jun 07 Javascript
jQuery File Upload文件上传插件使用详解
Dec 06 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
Sep 08 Javascript
无限循环轮播图之运动框架(原生JS实现)
Oct 01 Javascript
js作用域和作用域链及预解析
Apr 11 Javascript
js如何获取访问IP、地区、当前操作浏览器
Jul 23 Javascript
layer父页获取弹出层输入框里面的值方法
Sep 02 Javascript
借用Google的Javascript API Loader来加速你的网站
Jan 28 #Javascript
javascript打开新窗口同时关闭旧窗口
Jan 16 #Javascript
JavaScript URL参数读取改进版
Jan 16 #Javascript
JavaScript 在线压缩和格式化收藏
Jan 16 #Javascript
解javascript 混淆加密收藏
Jan 16 #Javascript
js 浮动层菜单收藏
Jan 16 #Javascript
jquery中常用的SET和GET
Jan 13 #Javascript
You might like
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
WordPress中&quot;无法将上传的文件移动至&quot;错误的解决方法
2015/07/01 PHP
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
2016/06/16 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
微信小程序的生命周期的详解
2017/10/19 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
2018/06/13 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
原生js实现弹幕效果
2020/11/29 Javascript
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
python实现360皮肤按钮控件示例
2014/02/21 Python
Python open()文件处理使用介绍
2014/11/30 Python
python创建进程fork用法
2015/06/04 Python
使用python遍历指定城市的一周气温
2017/03/31 Python
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
Django的分页器实例(paginator)
2017/12/01 Python
python3调用百度翻译API实现实时翻译
2018/08/16 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
Python实现投影法分割图像示例(二)
2020/01/17 Python
Python流程控制语句的深入讲解
2020/06/15 Python
房屋鉴定委托书范本
2014/09/23 职场文书
2014会计年终工作总结
2014/12/20 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
企业党支部工作总结2015
2015/05/21 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
学生检讨书范文
2019/06/24 职场文书
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL