JavaScript中的XMLDOM对象
测试:
demo.xml中的内容:
js文件内容:
window.onload=function(){ //var v=returnXMLDOM();
//v.loadXML('<root><user>Lee</user></root>');//第一种 加载xml字符
//alert(v.xml);//序列化 打印出xml字符串 //第二种加载方式:加载外部xml文件
var v=returnXMLDOM();//得到创建的对象
v.load('demo.xml');//同一个目录下这样写 不然还需要加上文件的路径
alert(v.xml);//进行序列话 打印字符串 //操作这些xmldom节点 和之前的dom操作方法一样
var node= v.getElementsByTagName("B")[0];
//alert(node.nodeName);//B元素节点 所以nodename属性的值为B
//alert(node.nodeValue);//元素节点的nodevalue属性值为null
//alert(node.nodeType);//nodetype值为1 //现在需要通过B节点得到c节点
var cnode=node.childNodes[0];//得到第一个c节点 也是一个元素节点
alert(cnode.nodeName);//c元素节点 所以nodename属性的值为c
alert(cnode.nodeValue);//元素节点的nodevalue属性值为null
alert(cnode.nodeType);//nodetype值为1
alert(cnode.firstChild.nodeValue);//打印第一个c节点中的文本的值 }
function returnXMLDOM(){
var version=[
'MSXML2.DOMDocument.6.0',
'MSXML2.DOMDocument.3.0',
'MSXML2.DOMDocument' ];
for(var i=0;i<version.length;i++){
try {
var xmlDom = new ActiveXObject(version[i]);//如果没有异常 那么就创建xmldom对象成功 并且返回
return xmlDom;
} catch (e) {
//跳过
}
}
throw new Error("你的浏览器不支持XMLDOM对象");
}
运行结果:
------------------
使用domxml创建节点 并把添加
var xmldom=returnXMLDOM();//得到创建的xmldom对象
xmldom.load('demo.xml');//把xml文件加载进来
var rootA=xmldom.documentElement;//通过documentElement方法获取xmldom中的跟标签A
alert(rootA.tagName);//打印节点名称A
//下面完成节点的添加操作 为B节点添加一个兄弟节点E
var E=xmldom.createElement("E");//注意这里不是document对象创建的e节点 而是xmldom对象
E.appendChild(xmldom.createTextNode("这是E节点的子节点"));
//把E节点加入到根节点A中 成为B节点的兄弟节点
rootA.appendChild(E);
alert(xmldom.xml);
---------------------
加载方式,同步和异步:
js代码:
var xmldom=getXMLDOM();
xmldom.load('demo.xml');//加载的时候有两种模式:同步和异步 默认同步 true
alert(xmldom.xml);
//上面的代码什么都不会打印 主要是采用了异步加载的模式 load还没有加载完毕就去序列化打印字符串 当然没有数据
//下面使用同步方式 即load加载完毕之前是不会执行下面的代码的
xmldom.async=false;
alert(xmldom.xml);//此时可以正常打印出xml文件中的数据 function getXMLDOM(){
var version=[
'MSXML2.DOMDocument.6.0',
'MSXML2.DOMDocument.3.0',
'MSXML2.DOMDocument'
];
for(var i=0;i<version.length;i++){
try{
var xmldom=new ActiveXObject(version[i]);
return xmldom;
}catch (e){
//跳过
}
}
throw new Error("你的浏览器不支持XMLDOM对象");
}
xml代码:
<A>
<B>
<c>你好1</c>
<c>你好2</c>
</B>
</A>
运行效果:
同步可能会造成浏览器出现假死状态
------------
异步方式:
JavaScript中的XMLDOM对象的更多相关文章
- JavaScript中的事件对象
JavaScript中的事件对象 JavaScript中的事件对象是非常重要的,恐怕是我们在项目中使用的最多的了.在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含这所有与事件有 ...
- JavaScript中创建字典对象(dictionary)实例
这篇文章主要介绍了JavaScript中创建字典对象(dictionary)实例,本文直接给出了实现的源码,并给出了使用示例,需要的朋友可以参考下 对于JavaScript来说,其自身的Array对象 ...
- Javascript学习1 - Javascript中的类型对象
原文:Javascript学习1 - Javascript中的类型对象 1.1关于Numbers对象. 常用的方法:number.toString() 不用具体介绍,把数字转换为字符串,相应的还有一个 ...
- 简单使用JSON,JavaScript中创建 JSON 对象(一)
JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解析. ...
- JavaScript中的window对象
JavaScript中的window对象:http://www.cnblogs.com/kissdodog/archive/2013/01/01/2841464.html
- js:JavaScript中的ActiveXObject对象
JavaScript中的ActiveXObject对象作用: https://blog.csdn.net/pl1612127/article/details/77862174
- 详解javascript中的this对象
详解javascript中的this对象 前言 Javascript是一门基于对象的动态语言,也就是说,所有东西都是对象,一个很典型的例子就是函数也被视为普通的对象.Javascript可以通过一定的 ...
- javascript中如何获取对象名
javascript中如何获取对象名 一.总结 一句话总结:将对象传入参数,看参数是否为函数(js中的对象和函数是一个意思么(函数肯定是对象)),对象参数.name属性即可获得 //版本4 funct ...
- JavaScript中的global对象,window对象以及document对象的区别和联系
JavaScript中的global对象,window对象以及document对象的区别和联系 一.概念区分:JavaScript中的global对象,window对象以及document对象 1.g ...
随机推荐
- apple 团队电话
back 苹果电话:400 670 18552 这个是国内能打通的
- python爬虫解决百度贴吧登陆验证码问题
作为贴吧重度用户,写了个贴吧爬虫脚本 抄了一些别人的代码.记得有个验证码解决的.可是忘了链接了,今天最终自己攻克了. 首先要让登陆须要验证码,不停地登陆就好了...度娘非常快会加上验证码大法的... ...
- 设计模式C++实现——组合模式
模式定义: 组合模式同意你将对象组合成树形结构来表现"总体/部分"层次结构.组合能让客户以一致的方式处理个别对象以及对象组合. 这个模式可以创建一个树形结构,在同一个结构中处理嵌套 ...
- ScalaChina: Scala中文社区
给大家推荐一个很常使用心的Scala中文社区 ScalaChina地址:http://scalachina.org/ 来自社区创建者的<我为什么想做ScalaChina>: http:// ...
- Codeforces Round #200 (Div. 2)D. Alternating Current (堆栈)
D. Alternating Current time limit per test 1 second memory limit per test 256 megabytes input standa ...
- C语言数组和函数实例练习(二)
1.C语言中不允许函数的嵌套定义,但可以使用函数的嵌套调用. 例1:输入4个整数,找出其中最大的数. #include <stdio.h> #include <stdlib.h> ...
- Java类集综合练习——信息管理(增、删、改、查)
一.实现功能——模拟学生选课功能 1.选择课程 2.修改所选课程 二.实现功能——模拟学生信息管理功能 1.添加学生信息 2.修改学生信息 二.主要代码(在同一个包里) 1.课程类 public cl ...
- Android.mk中添加宏定义【转】
本文转载自:http://blog.csdn.net/huangyabin001/article/details/38302021 在Boardconfig.mk 中添加一个 IS_FLAG := t ...
- navicat数据库同步
10.168.95.246
- hammer教程
一.前言 移动端框架当前还处在初级阶段,但相对于移动端的应用来说已经有很长时间了.虽然暂时还没有PC端开发的需求量大,但移动端的Web必然是一种趋势,在接触移动端脚本的过程中,最开始想到的是juqer ...