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 ...
随机推荐
- Scala入门到精通——第一节 Scala语言初步
本节主要内容 Scala简单介绍 为什么要学习Scala Scala语言初步 1. Scala简单介绍 Scala(Scala Language的简称)语言是一种能够执行于JVM和.Net平台之上的通 ...
- 安卓欢迎界面和activity之间的跳转问题
使用安卓的UI界面,就不得不了解activity,由于actvity就像是一个form表单一样,全部的UI都呈如今这里,他能够承载全部的UI控件. INtent就是一个中继站一样.他负责组件之间的沟通 ...
- POJ3090 Visible Lattice Points 欧拉筛
题目大意:给出范围为(0, 0)到(n, n)的整点,你站在原点处,问有多少个整点可见. 线y=x和坐标轴上的点都被(1,0)(0,1)(1,1)挡住了.除这三个钉子外,如果一个点(x,y)不互质,则 ...
- 国内物联网平台初探(三) ——QQ物联·智能硬件开放平台
平台定位 将QQ帐号体系.好友关系链.QQ消息通道及音视频服务等核心能力提供给可穿戴设备.智能家居.智能车载.传统硬件等领域的合作伙伴,实现用户与设备.设备与设备.设备与服务之间的联动. 实现用户与设 ...
- 函数和指针 C++
一.用函数指针变量调用函数. 指针变量也可以指向一个函数,一个函数在编译时被分配给一个入口地址.这个函数入口地址就称为函数的指针.可以用一个指针变量指向函数,然后通过该指针变量调用此函数. 定义指向函 ...
- 转载【H:JL】用大家的力量来总结一个目录(众人拾柴火焰高)
博客地址:http://www.cnblogs.com/HJL-Blog/p/4459245.html
- ettercap + driftnet 实现同网段下流量欺骗
前言: 由于在局域网中,网关会不断地发送 ARP 数据包询问当前是否有新的客户端上线,如果我们可以欺骗当前局域网网段下的主机, 把我们当成网关地址,并且我们把欺骗的流量转发到真正的网关地址,这样我们就 ...
- ps -aux ,ps aux ,ps -ef 的区别
Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...
- C# txt文件操作
//打开文件到流 FileStream fs=new FileStream(path,FileMode.Open,FileAccess.ReadWrite); //写文件流的方法 StreamWrit ...
- css3动画简单案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...