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 文件夹选择框的两种解决方案
Jul 01 Javascript
jquery限制输入字数,并提示剩余字数实现代码
Dec 24 Javascript
javascript制作照片墙及制作过程中出现的问题
Apr 04 Javascript
jQuery动态添加
Apr 07 Javascript
全面了解函数声明与函数表达式、变量提升
Aug 09 Javascript
VUE开发一个图片轮播的组件示例代码
Mar 06 Javascript
ES6入门教程之Iterator与for...of循环详解
May 17 Javascript
浅谈react性能优化的方法
Sep 05 Javascript
node app 打包工具pkg的具体使用
Jan 17 Javascript
基于Vue SEO的四种方案(小结)
Jul 01 Javascript
前后端常见的几种鉴权方式(小结)
Aug 04 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
Aug 04 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在线打包程序源码
2008/07/27 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
深入for,while,foreach遍历时间比较的详解
2013/06/08 PHP
php+highchats生成动态统计图
2014/05/21 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
网站页面自动跳转实现方法PHP、JSP(下)
2010/08/01 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
jQuery实现可用于博客的动态滑动菜单
2015/03/09 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
微信小程序 rich-text的使用方法
2017/08/04 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
angular4+百分比进度显示插件用法示例
2019/05/05 Javascript
JS script脚本中async和defer区别详解
2020/06/24 Javascript
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python3安装Pymongo详细步骤
2017/05/26 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
如何基于python测量代码运行时间
2019/12/25 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
html5 input属性使用示例
2013/06/28 HTML / CSS
瑰珀翠美国官网:Crabtree & Evelyn美国
2016/11/29 全球购物
《第一次抱母亲》教学反思
2014/04/16 职场文书
工作试用期自我评价
2015/03/10 职场文书
2015年底工作总结范文
2015/05/15 职场文书
2015初中政治教学工作总结
2015/07/21 职场文书
python基础之爬虫入门
2021/05/10 Python
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL
深入讲解Vue中父子组件通信与事件触发
2022/03/22 Vue.js