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 继承实现方法
Aug 26 Javascript
jquery focus(fn),blur(fn)方法实例代码
Dec 16 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
Jun 20 Javascript
jQuery判断当前点击的是第几个li的代码
Sep 26 Javascript
JavaScript中setUTCFullYear()方法的使用简介
Jun 12 Javascript
bootstrap选项卡扩展功能详解
Jun 14 Javascript
关于axios不能使用Vue.use()浅析
Jan 12 Javascript
浅谈Vue响应式(数组变异方法)
May 07 Javascript
JS实现快递单打印功能【推荐】
Jun 21 Javascript
详解浏览器缓存和webpack缓存配置
Jul 06 Javascript
javascript中关于类型判断的一些疑惑小结
Oct 14 Javascript
Vue SPA 初次进入加载动画实现代码
Nov 14 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
操作Oracle的php类
2006/10/09 PHP
php方法调用模式与函数调用模式简例
2011/09/20 PHP
PHP自定义多进制的方法
2016/11/03 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析
2010/03/12 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
原生JavaScript编写canvas版的连连看游戏
2016/05/29 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
D3.js实现饼状图的方法详解
2016/09/21 Javascript
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
详解Nodejs内存治理
2018/05/13 NodeJs
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
js实现拖动缓动效果
2020/01/13 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
[04:49]2014DOTA2国际邀请赛 Newbee顺利挺进总决赛 ImbaTV独家专访
2014/07/19 DOTA
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
python中os操作文件及文件路径实例汇总
2015/01/15 Python
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
Python运算符重载详解及实例代码
2017/03/07 Python
Python实现的选择排序算法示例
2017/11/29 Python
python实现远程控制电脑
2019/05/23 Python
python支持多线程的爬虫实例
2019/12/21 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
英国工具中心:UK Tool Centre
2017/07/10 全球购物
市三好学生主要事迹
2014/01/28 职场文书
幼儿园教师个人反思
2014/01/30 职场文书
《狼》教学反思
2014/03/02 职场文书
部门年终奖分配方案
2014/05/07 职场文书
环保倡议书500字
2014/05/15 职场文书
拒绝黄毒毒宣传标语
2014/06/26 职场文书
公司租房协议书范本
2014/10/08 职场文书
外出培训学习心得体会
2016/01/18 职场文书
分享提高 Python 代码的可读性的技巧
2022/03/03 Python