测试:

demo.xml中的内容:

js文件内容:

  1. window.onload=function(){
  2.  
  3. //var v=returnXMLDOM();
  4. //v.loadXML('<root><user>Lee</user></root>');//第一种 加载xml字符
  5. //alert(v.xml);//序列化 打印出xml字符串
  6.  
  7. //第二种加载方式:加载外部xml文件
  8. var v=returnXMLDOM();//得到创建的对象
  9. v.load('demo.xml');//同一个目录下这样写 不然还需要加上文件的路径
  10. alert(v.xml);//进行序列话 打印字符串
  11.  
  12. //操作这些xmldom节点 和之前的dom操作方法一样
  13. var node= v.getElementsByTagName("B")[0];
  14. //alert(node.nodeName);//B元素节点 所以nodename属性的值为B
  15. //alert(node.nodeValue);//元素节点的nodevalue属性值为null
  16. //alert(node.nodeType);//nodetype值为1
  17.  
  18. //现在需要通过B节点得到c节点
  19. var cnode=node.childNodes[0];//得到第一个c节点 也是一个元素节点
  20. alert(cnode.nodeName);//c元素节点 所以nodename属性的值为c
  21. alert(cnode.nodeValue);//元素节点的nodevalue属性值为null
  22. alert(cnode.nodeType);//nodetype值为1
  23. alert(cnode.firstChild.nodeValue);//打印第一个c节点中的文本的值
  24.  
  25. }
  26. function returnXMLDOM(){
  27. var version=[
  28. 'MSXML2.DOMDocument.6.0',
  29. 'MSXML2.DOMDocument.3.0',
  30. 'MSXML2.DOMDocument'
  31.  
  32. ];
  33. for(var i=0;i<version.length;i++){
  34. try {
  35. var xmlDom = new ActiveXObject(version[i]);//如果没有异常 那么就创建xmldom对象成功 并且返回
  36. return xmlDom;
  37. } catch (e) {
  38. //跳过
  39. }
  40. }
  41. throw new Error("你的浏览器不支持XMLDOM对象");
  42. }

运行结果:

------------------

 使用domxml创建节点 并把添加

  1. var xmldom=returnXMLDOM();//得到创建的xmldom对象
  2. xmldom.load('demo.xml');//把xml文件加载进来
  3. var rootA=xmldom.documentElement;//通过documentElement方法获取xmldom中的跟标签A
  4. alert(rootA.tagName);//打印节点名称A
  5. //下面完成节点的添加操作 为B节点添加一个兄弟节点E
  6. var E=xmldom.createElement("E");//注意这里不是document对象创建的e节点 而是xmldom对象
  7. E.appendChild(xmldom.createTextNode("这是E节点的子节点"));
  8. //把E节点加入到根节点A中 成为B节点的兄弟节点
  9. rootA.appendChild(E);
  10. alert(xmldom.xml);

---------------------

加载方式,同步和异步:

js代码:

  1. var xmldom=getXMLDOM();
  2. xmldom.load('demo.xml');//加载的时候有两种模式:同步和异步 默认同步 true
  3. alert(xmldom.xml);
  4. //上面的代码什么都不会打印 主要是采用了异步加载的模式 load还没有加载完毕就去序列化打印字符串 当然没有数据
  5. //下面使用同步方式 即load加载完毕之前是不会执行下面的代码的
  6. xmldom.async=false;
  7. alert(xmldom.xml);//此时可以正常打印出xml文件中的数据
  8.  
  9. function getXMLDOM(){
  10. var version=[
  11. 'MSXML2.DOMDocument.6.0',
  12. 'MSXML2.DOMDocument.3.0',
  13. 'MSXML2.DOMDocument'
  14. ];
  15. for(var i=0;i<version.length;i++){
  16. try{
  17. var xmldom=new ActiveXObject(version[i]);
  18. return xmldom;
  19. }catch (e){
  20. //跳过
  21. }
  22. }
  23. throw new Error("你的浏览器不支持XMLDOM对象");
  24. }

xml代码:

  1. <A>
  2. <B>
  3. <c>你好1</c>
  4. <c>你好2</c>
  5. </B>
  6. </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. H_Dp

    <span style="color:#000099;">/* H - 简单dp 例题扩展 Time Limit:3000MS Memory Limit:65536KB ...

  2. Mina airQQ聊天开门见山篇(一)

    Mina airQQ聊天开门见山篇(一) 近期项目可能要用到Mina,这个礼拜就在看这个框架,所以想写个小小的聊天的demo来巩固下,打算用几篇博客来记录下相关的知识 client用的是Flex Ai ...

  3. Makefile中怎样调用python和perl文件为自己提供须要的数据

    Makefile中怎样调用python和perl文件为自己提供须要的数据,利用print函数对外输出数据 实例代码例如以下 perl.pl #!/usr/bin/perl print("he ...

  4. bzoj3673: 可持久化并查集 by zky&&3674: 可持久化并查集加强版

    主席树可持久化数组,还挺好YY的 然而加强版要路径压缩.. 发现压了都RE 结果看了看数据,默默的把让fx的父亲变成fy反过来让fy的父亲变成fx 搞笑啊 #include<cstdio> ...

  5. EOJ 3031 二进制倒置

    题目描述 给定一个整数 n(0≤n≤10100).将 n 的 334 位二进制表示形式(不包括开头可能的值为 0 的位,n=0 表示为 1 位 0)前后倒置,输出倒置后的二进制数对应的整数. 例如:n ...

  6. 一起学Android之Fragment

    概述 本文以一个简单的小例子,简述在Android开发中,Fragment的常见用法,仅供学习分享使用,如有不足之处,还请指正. 什么是Fragment? Fragment代表一个功能或者用户界面的一 ...

  7. 为什么用Mysql?

    阅读目录 楔子 初识数据库 为什么要用数据库 认识数据库 初识mysql mysql概念 下载和安装 初识sql语句 楔子 假设现在你已经是某大型互联网公司的高级程序员,让你写一个火车票购票系统,来h ...

  8. [] == ![]为什么是true

    我们先来考虑这个问题,console.log([] == false)会打印什么呢? 答案是true.为什么呢? 首先,因为当"=="号两边其中一个是布尔值的话,先把它转换为数字( ...

  9. BZOJ4517: [Sdoi2016]排列计数(组合数+错位排列)

    Time Limit: 60 Sec  Memory Limit: 128 MBSubmit: 1626  Solved: 994[Submit][Status][Discuss] Descripti ...

  10. 利用javascript(自定义事件)记录尺寸可变元素的尺寸变化过程

    1.效果图 2.源码 <%@ page contentType="text/html;charset=UTF-8" language="java" %&g ...