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 相关文章推荐
firefox firebug中文入门教程 脚本之家新年特别版
Jan 02 Javascript
固定表格行列(expression)在IE下适用
Jul 25 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
Nov 22 Javascript
jQuery实现新消息在网页标题闪烁提示
Jun 23 Javascript
jquery限定文本框只能输入数字(整数和小数)
Jan 08 Javascript
jquery跟随屏幕滚动效果的实现代码
Apr 13 Javascript
JavaScript必知必会(十) call apply bind的用法说明
Jun 08 Javascript
bootstrap多种样式进度条展示
Dec 20 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
May 08 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
Aug 17 Javascript
vue相关配置文件详解及多环境配置详细步骤
May 19 Javascript
JQuery获得内容和属性方法解析
May 30 jQuery
借用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数据访问之增删改查操作
2016/05/09 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
PHP反射基础知识回顾
2020/09/10 PHP
分享十五个最佳jQuery 幻灯插件和教程
2010/03/27 Javascript
JavaScript 代码压缩工具小结
2012/02/27 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
js实现表单多按钮提交action的处理方法
2015/10/24 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
webpack搭建vue 项目的步骤
2017/12/27 Javascript
vue轮播图插件vue-concise-slider的使用
2018/03/13 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
python paramiko实现ssh远程访问的方法
2013/12/03 Python
全面理解Python中self的用法
2016/06/04 Python
Python+MongoDB自增键值的简单实现
2016/11/04 Python
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
世界领先的豪华床上用品供应商之一:Bedeck Home
2019/03/18 全球购物
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
事业单位公务员的职业生涯规划
2014/01/15 职场文书
销售总经理岗位职责
2014/03/15 职场文书
机械电子工程专业求职信
2014/06/22 职场文书
学生穿着不得体检讨书
2014/10/12 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
会议开幕词
2015/01/28 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
一级电子管军用接收机测评
2022/04/05 无线电