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 相关文章推荐
asp批量修改记录的代码
Jun 25 Javascript
javascript hasFocus使用实例
Jun 29 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
Dec 04 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
Dec 21 Javascript
解析JavaScript的ES6版本中的解构赋值
Jul 28 Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
Aug 02 Javascript
jQuery常用选择器详解
Jul 17 jQuery
React 项目迁移 Webpack Babel7的实现
Sep 12 Javascript
vue-cli3+typescript初体验小结
Feb 28 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
Jul 08 Javascript
JS轮播图的实现方法2
Aug 25 Javascript
js实现点击按钮随机生成背景颜色
Sep 05 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使用Session和文件统计在线人数
2015/07/04 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
Javascript SHA-1:Secure Hash Algorithm
2006/12/20 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
2013/11/11 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
2014/03/22 Javascript
javascript正则匹配汉字、数字、字母、下划线
2014/04/10 Javascript
javascript实现禁止复制网页内容
2014/12/16 Javascript
JavaScript基于ajax编辑信息用法实例
2015/07/15 Javascript
原生js实现ajax方法(超简单)
2016/09/20 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
VUE中使用MUI方法
2019/02/12 Javascript
使用webpack4编译并压缩ES6代码的方法示例
2019/04/24 Javascript
详解微信小程序自定义组件的实现及数据交互
2019/07/22 Javascript
python解决Fedora解压zip时中文乱码的方法
2016/09/18 Python
Python序列化基础知识(json/pickle)
2017/10/19 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
python 格式化输出百分号的方法
2019/01/20 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
学习python可以干什么
2019/02/26 Python
Python Flask异步发送邮件实现方法解析
2020/08/01 Python
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
土木工程专业个人求职信
2013/12/30 职场文书
公司授权委托书样本
2014/09/15 职场文书
教师党员承诺书2015
2015/01/21 职场文书
工作经历证明范本
2015/06/15 职场文书
房屋产权证明书
2015/06/19 职场文书
SpringBoot读取Resource下文件的4种方法
2021/07/02 Java/Android
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android
MySQL自定义函数及触发器
2022/08/05 MySQL