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 string 扩展库代码
Apr 09 Javascript
onclick与listeners的执行先后问题详细解剖
Jan 07 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
Apr 26 Javascript
FireBug 调试JS入门教程 如何调试JS
Dec 23 Javascript
jQuery实现Twitter的自动文字补齐特效
Nov 28 Javascript
JS日程管理插件FullCalendar中文说明文档
Feb 06 Javascript
详解JS: reduce方法实现 webpack多文件入口
Feb 14 Javascript
javascript、php关键字搜索函数的使用方法
May 29 Javascript
Vue组件的使用及个人理解与介绍
Feb 09 Javascript
vue中typescript装饰器的使用方法超实用教程
Jun 17 Javascript
Vue中computed和watch有哪些区别
Dec 19 Vue.js
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
Apr 11 Vue.js
借用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
NT IIS下用ODBC连接数据库
2006/10/09 PHP
PHP的autoload机制的实现解析
2012/09/15 PHP
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
2013/06/21 PHP
ThinkPHP实现二级循环读取的方法
2014/11/03 PHP
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
2016/03/08 Javascript
基于vuejs+webpack的日期选择插件
2020/05/21 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
JS中的回调函数实例浅析
2018/03/21 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
基于canvas实现手写签名(vue)
2020/05/21 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
简介Python中用于处理字符串的center()方法
2015/05/18 Python
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
Python入门之后再看点什么好?
2018/03/05 Python
pytorch 共享参数的示例
2019/08/17 Python
Python之Class&amp;Object用法详解
2019/12/25 Python
python 回溯法模板详解
2020/02/26 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
一道SQL存储过程面试题
2016/10/07 面试题
大学生军训感想
2014/02/16 职场文书
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
解除租房协议书
2014/12/03 职场文书
获奖感言一句话
2015/07/31 职场文书
排查并解决Oracle sysaux表空间异常增长
2022/04/20 Oracle