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 相关文章推荐
js 事件小结 表格区别
Aug 13 Javascript
JS localStorage实现本地缓存的方法
Jun 22 Javascript
js替代copy(示例代码)
Nov 27 Javascript
通过Jquery的Ajax方法读取将table转换为Json
May 31 Javascript
JQuery插件jcarousellite的参数中文说明
May 11 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
Apr 03 Javascript
简单的分页代码js实现
May 17 Javascript
js canvas实现擦除动画
Jul 16 Javascript
JavaScript中数组的各种操作的总结(必看篇)
Feb 13 Javascript
vue.js的安装方法
May 12 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
Mar 06 Javascript
详解JavaScript中的函数、对象
Apr 01 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
萌王史莱姆”萌王性别尴尬!那“萌战”归女组还是男?
2018/12/17 日漫
php学习之数据类型之间的转换介绍
2011/06/09 PHP
浅谈PHP变量作用域以及地址引用问题
2013/12/27 PHP
ThinkPHP中ajax使用实例教程
2014/08/22 PHP
PHP实现负载均衡的加权轮询方法分析
2018/08/22 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
js如何获取file控件的完整路径具体实现代码
2013/05/15 Javascript
Js获取数组最大和最小值示例代码
2013/10/29 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
分享15个大家都熟知的jquery小技巧
2015/12/02 Javascript
node.JS md5加密中文与php结果不一致的解决方法
2017/05/05 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
实例分析编写vue组件方法
2019/02/12 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
vue使用require.context实现动态注册路由
2020/12/25 Vue.js
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
Python实现简易过滤删除数字的方法小结
2019/01/09 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
Python中有几个关键字
2020/06/04 Python
python:删除离群值操作(每一行为一类数据)
2020/06/08 Python
Django实现随机图形验证码的示例
2020/10/15 Python
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
澳大利亚药房在线:ThePharmacy
2017/10/04 全球购物
数控技校生自我鉴定
2014/03/02 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
2014年保卫部工作总结
2014/11/21 职场文书
作文批改评语
2014/12/25 职场文书
2016关于读书活动的心得体会
2016/01/14 职场文书