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 相关文章推荐
推荐一款jQuery插件模板
Jan 09 Javascript
js实现下拉框选择要显示图片的方法
Feb 16 Javascript
javascript闭包概念简单解析(推荐)
Jun 03 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
Jul 07 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
Jul 25 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
Nov 22 Javascript
ES6新特性八:async函数用法实例详解
Apr 21 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
Sep 05 Javascript
vue安装和使用scss及sass与scss的区别详解
Oct 15 Javascript
Vue结合后台导入导出Excel问题详解
Feb 19 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
May 12 Javascript
javascript开发实现贪吃蛇游戏
Jul 31 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二分查找二种实现示例
2014/03/12 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
window.open不被拦截的实现代码
2012/08/22 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
Python多进程原理与用法分析
2018/08/21 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
django和vue实现数据交互的方法
2019/08/21 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
Python网页解析器使用实例详解
2020/05/30 Python
keras得到每层的系数方式
2020/06/15 Python
python中return不返回值的问题解析
2020/07/22 Python
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
日本酒店、民宿、温泉旅馆、当地旅行团中文预订:e路东瀛
2019/12/09 全球购物
《中华少年》教学反思
2014/02/15 职场文书
导师推荐信范文
2014/05/09 职场文书
2014年秋季开学演讲稿
2014/05/24 职场文书
工地安全生产标语
2014/06/06 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
前台文员岗位职责
2015/02/04 职场文书
酒店辞职信怎么写
2015/02/27 职场文书
2015年技术工作总结范文
2015/04/20 职场文书
Redis 常见使用场景
2021/08/30 Redis
详解Python中__new__方法的作用
2022/03/31 Python