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 getElementsByTagName
Jan 31 Javascript
jQuery 在光标定位的地方插入文字的插件
May 10 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
Dec 11 Javascript
javasctipt如何显示几分钟前、几天前等
Apr 30 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
Sep 18 Javascript
Angularjs 制作购物车功能实例代码
Sep 14 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
May 04 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
Jul 15 Javascript
layui table 获取分页 limit的方法
Sep 20 Javascript
JavaScript链式调用原理与实现方法详解
May 16 Javascript
Vue实现Header渐隐渐现效果的实例代码
Nov 05 Javascript
vue里使用create, mounted调用方法
Apr 26 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
帖几个PHP的无限分类实现想法~
2007/01/02 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
2013/06/13 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
JavaScript 布尔操作符解析  &amp;&amp; || !
2012/08/10 Javascript
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
JScript分割字符串示例代码
2013/09/04 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
JavaScript中为事件指定处理程序的五种方式分析
2018/07/27 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
python继承和抽象类的实现方法
2015/01/14 Python
python检查URL是否正常访问的小技巧
2017/02/25 Python
python使用生成器实现可迭代对象
2018/03/20 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
python使用numpy中的size()函数实例用法详解
2021/01/29 Python
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
淘宝中秋节活动方案
2014/01/31 职场文书
公司经理任命书
2014/06/05 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
关于运动会的广播稿50字
2014/10/17 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
2014年人力资源工作总结
2014/11/19 职场文书
五一放假通知怎么写
2015/08/18 职场文书
小学语文教学反思范文
2016/03/03 职场文书
小学二年级语文教学反思
2016/03/03 职场文书
Python中X[:,0]和X[:,1]的用法
2021/05/10 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android