测试:

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对象的更多相关文章

  1. JavaScript中的事件对象

    JavaScript中的事件对象 JavaScript中的事件对象是非常重要的,恐怕是我们在项目中使用的最多的了.在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含这所有与事件有 ...

  2. JavaScript中创建字典对象(dictionary)实例

    这篇文章主要介绍了JavaScript中创建字典对象(dictionary)实例,本文直接给出了实现的源码,并给出了使用示例,需要的朋友可以参考下 对于JavaScript来说,其自身的Array对象 ...

  3. Javascript学习1 - Javascript中的类型对象

    原文:Javascript学习1 - Javascript中的类型对象 1.1关于Numbers对象. 常用的方法:number.toString() 不用具体介绍,把数字转换为字符串,相应的还有一个 ...

  4. 简单使用JSON,JavaScript中创建 JSON 对象(一)

    JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解析. ...

  5. JavaScript中的window对象

    JavaScript中的window对象:http://www.cnblogs.com/kissdodog/archive/2013/01/01/2841464.html

  6. js:JavaScript中的ActiveXObject对象

    JavaScript中的ActiveXObject对象作用: https://blog.csdn.net/pl1612127/article/details/77862174

  7. 详解javascript中的this对象

    详解javascript中的this对象 前言 Javascript是一门基于对象的动态语言,也就是说,所有东西都是对象,一个很典型的例子就是函数也被视为普通的对象.Javascript可以通过一定的 ...

  8. javascript中如何获取对象名

    javascript中如何获取对象名 一.总结 一句话总结:将对象传入参数,看参数是否为函数(js中的对象和函数是一个意思么(函数肯定是对象)),对象参数.name属性即可获得 //版本4 funct ...

  9. JavaScript中的global对象,window对象以及document对象的区别和联系

    JavaScript中的global对象,window对象以及document对象的区别和联系 一.概念区分:JavaScript中的global对象,window对象以及document对象 1.g ...

随机推荐

  1. libyuv库的使用

    libyuv是Google开源的实现各种YUV与RGB之间相互转换.旋转.缩放的库.它是跨平台的,可在Windows.Linux.Mac.Android等操作系统.x86.x64.arm架构上进行编译 ...

  2. 项目结构、包、编译为exe!

    一个java源文件里至多有一个public类,该类的名称必须与源文件名称称同样.也能够没有public类.文件名称与随意一个类名一致就可以. 包 类似于cpp的namespace,是对类的再封装,防止 ...

  3. iOS GCD使用指南

    Grand Central Dispatch(GCD)是异步运行任务的技术之中的一个. 一般将应用程序中记述的线程管理用的代码在系统级中实现.开发人员仅仅须要定义想运行的任务并追加到适当的Dispat ...

  4. mysql选择上一条、下一条数据记录,排序上移、下移、置顶

    1.功能须要 完毕列表排序上移,下移,置顶功能.效果例如以下图所看到的: 2设置思路 设置一个rank为之间戳,通过选择上移,就是将本记录与上一条记录rank值交换,下移就是将本条记录与下一条记录ra ...

  5. Windows下Go语言LiteIDE下载及安装

    下载地址为 https://www.golangtc.com/download/liteide  我下载的是liteidex32.1windows-qt4.zip,下载之后解压,并将liteide文件 ...

  6. c16---字符串

    // // main.c // 字符串的基本概念,字符串和字符数组的共用的char[], #include <stdio.h> int main(int argc, const char ...

  7. [WebServer] Windows下Apache与Tomcat的整合

    转自:http://bbs.blueidea.com/thread-2873268-1-1.html 准备工作:1. Apache 2.2.4下载地址:http://cztele1.skycn.com ...

  8. systemd实践: 依据情况自动重启服务

    systemd服务异常自动重启很好用,但有的时候希望某些服务只在特定情况下进行重启,其他时候不要自动重启(比如OOM,需要人工介入). 本文抛砖引玉,旨在能够让读者对systemd的重启机制有一定了解 ...

  9. 从默认析构函数学习c++,new,delete,内存泄漏,野指针

    默认析构函数:当系统没有显式定义析构函数,编译器同样会为对象定义一个默认析构函数,默认的析构函数只能释放普通数据成员所占用的空间,无法通过释放通过new和malloc进行申请的空间,因此避免内存泄漏, ...

  10. 如何用ajax写分页查询(以留言信息为例)-----2017-05-17

    要写分页,首先你得清楚,一页你想显示多少条信息?如何计算总共显示的页数? 先说一下思路: (1)从数据库读取数据,以chenai表为例,读取所有留言信息.并能够实现输入发送者,可以查询该发送者的留言总 ...