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的获取浏览器窗口大小的代码
Mar 28 Javascript
用客户端js实现带省略号的分页
Apr 27 Javascript
jquery实现弹出层遮罩效果的简单实例
Mar 03 Javascript
JavaScript学习笔记之定时器
Jan 22 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
Feb 19 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
Aug 28 Javascript
js 毫秒转天时分秒的实例
Nov 17 Javascript
axios发送post请求springMVC接收不到参数的解决方法
Mar 05 Javascript
clipboard在vue中的使用的方法示例
Oct 19 Javascript
记录一次完整的react hooks实践
Mar 11 Javascript
vue中axios实现数据交互与跨域问题
May 12 Javascript
微信小程序实现吸顶特效
Jan 08 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实现多图上传(结合uploadify插件)思路分析
2016/11/30 PHP
学习YUI.Ext第五日--做拖放Darg&amp;Drop
2007/03/10 Javascript
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
解析window.open的使用方法总结
2013/06/19 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
import与export在node.js中的使用详解
2017/09/28 Javascript
vue 指定组件缓存实例详解
2018/04/01 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
vue component 中引入less文件报错 Module build failed
2019/04/17 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
vue 清空input标签 中file的值操作
2020/07/21 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
python dict remove数组删除(del,pop)
2013/03/24 Python
Django的session中对于用户验证的支持
2015/07/23 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
PyCharm在win10的64位系统安装实例
2017/11/26 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
Python实现代码块儿折叠
2020/04/15 Python
python 如何区分return和yield
2020/09/22 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
安全大检查反思材料
2014/01/31 职场文书
小学中秋节活动方案
2014/02/06 职场文书
自荐信的基本格式
2014/02/22 职场文书
党员违纪检讨书怎么写
2014/11/01 职场文书
现场施工员岗位职责
2015/04/11 职场文书
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
学习nginx基础知识
2021/09/04 Servers