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 相关文章推荐
js 模拟实现类似c#下的hashtable的简单功能代码
Jan 24 Javascript
JavaScript中两种链式调用实现代码
Jan 12 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
Sep 29 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
Mar 01 Javascript
jquery 多行文本框(textarea)高度变化
Jul 03 Javascript
JS 两个字符串时间的天数差计算
Aug 25 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
Apr 15 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
May 05 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
Jun 01 Javascript
代码详解javascript模块加载器
Mar 04 Javascript
ES6 Array常用扩展的应用实例分析
Jun 26 Javascript
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
Jun 09 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
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
JavaScript开发时的五个注意事项
2007/12/08 Javascript
js如何实现设计模式中的模板方法
2013/07/23 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
深入解析JavaScript的闭包机制
2015/10/20 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
Python ljust rjust center输出
2008/09/06 Python
python模拟登陆Tom邮箱示例分享
2014/01/13 Python
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
Python脚本实时处理log文件的方法
2016/11/21 Python
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
2018/02/13 Python
解决Python运行文件出现out of memory框的问题
2018/12/03 Python
python3下载抖音视频的完整代码
2019/06/05 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
利用Python实现学生信息管理系统的完整实例
2020/12/30 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
小学新学期教师寄语
2014/01/18 职场文书
测试工程师程序员求职信范文
2014/02/20 职场文书
领导失职检讨书
2014/02/24 职场文书
高中生班主任评语
2014/04/25 职场文书
大学课外活动总结
2014/07/09 职场文书
最美家庭活动方案
2014/08/31 职场文书
幼儿园中班教师个人总结
2015/02/05 职场文书
防暑降温通知书
2015/04/27 职场文书
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python
德生2P3收音机开箱评测
2022/04/30 无线电