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实现页面打印的三种方法
Mar 05 Javascript
javascript 获取网页参数系统
Jul 19 Javascript
javascript XML数据显示为HTML一例
Dec 23 Javascript
javascript动态判断html元素并执行不同的操作
Jun 16 Javascript
使用js实现的简单拖拽效果
Mar 18 Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
Nov 21 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
Dec 06 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
Sep 28 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
Oct 19 jQuery
Vue2仿淘宝实现省市区三级联动
Apr 15 Javascript
如何更好的编写js async函数
May 13 Javascript
解决layer弹出层msg的文字不显示的问题
Sep 11 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中鲜为人知的10个函数
2014/02/28 PHP
分享下php5类中三种数据类型的区别
2015/01/26 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
How to Auto Include a Javascript File
2007/02/02 Javascript
jquery $.ajax入门应用二
2008/11/19 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
2013/04/25 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
nodejs个人博客开发第二步 入口文件
2017/04/12 NodeJs
浅谈Vue.js中ref ($refs)用法举例总结
2017/12/19 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
JavaScript实现简易计算器小功能
2020/10/22 Javascript
Python实现扩展内置类型的方法分析
2017/10/16 Python
python使用matplotlib画饼状图
2018/09/25 Python
python3实现名片管理系统
2020/11/29 Python
浅谈Pandas:Series和DataFrame间的算术元素
2018/12/22 Python
AUC计算方法与Python实现代码
2020/02/28 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
python 下划线的不同用法
2020/10/24 Python
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
自动化工程专业个人应聘自荐信
2013/09/26 职场文书
关于人生的感言
2014/01/17 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
世界地球日活动总结
2015/02/09 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书
小学语文教师研修日志
2015/11/13 职场文书
电力培训学习心得体会
2016/01/11 职场文书
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL