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+CSS实现控制打印样式
Dec 31 Javascript
浅谈javascript中的三种弹窗
Oct 21 Javascript
C#微信小程序服务端获取用户解密信息实例代码
Mar 10 Javascript
完美解决浏览器跨域的几种方法(汇总)
May 08 Javascript
微信小程序 sha1 实现密码加密实例详解
Jul 06 Javascript
vue获取dom元素注意事项
Dec 28 Javascript
利用Console来Debug的10个高级技巧汇总
Mar 26 Javascript
解决vue keep-alive 数据更新的问题
Sep 21 Javascript
使用electron制作满屏心特效的示例代码
Nov 27 Javascript
微信小程序云开发 生成带参小程序码流程
May 18 Javascript
vue+element 模态框表格形式的可编辑表单实现
Jun 07 Javascript
解决vue cli使用typescript后打包巨慢的问题
Sep 30 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 购物车完整实现代码
2014/06/05 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
2016/03/17 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
2009/04/01 Javascript
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
JS动态加载当前时间的方法
2015/02/09 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
vue展示dicom文件医疗系统的实现代码
2018/08/27 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
js对象数组和对象的使用实例详解
2019/08/27 Javascript
分享python数据统计的一些小技巧
2016/07/21 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
python感知机实现代码
2019/01/18 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
Python多线程thread及模块使用实例
2020/04/28 Python
Python正则表达式如何匹配中文
2020/05/27 Python
pycharm导入源码的具体步骤
2020/08/04 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
Python实现疫情地图可视化
2021/02/05 Python
退伍老兵事迹材料
2014/01/31 职场文书
施工员岗位职责
2015/02/10 职场文书
幼儿园中班个人总结
2015/02/28 职场文书
2015年汽车销售员工作总结
2015/07/24 职场文书