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 ...
随机推荐
- H_Dp
<span style="color:#000099;">/* H - 简单dp 例题扩展 Time Limit:3000MS Memory Limit:65536KB ...
- Mina airQQ聊天开门见山篇(一)
Mina airQQ聊天开门见山篇(一) 近期项目可能要用到Mina,这个礼拜就在看这个框架,所以想写个小小的聊天的demo来巩固下,打算用几篇博客来记录下相关的知识 client用的是Flex Ai ...
- Makefile中怎样调用python和perl文件为自己提供须要的数据
Makefile中怎样调用python和perl文件为自己提供须要的数据,利用print函数对外输出数据 实例代码例如以下 perl.pl #!/usr/bin/perl print("he ...
- bzoj3673: 可持久化并查集 by zky&&3674: 可持久化并查集加强版
主席树可持久化数组,还挺好YY的 然而加强版要路径压缩.. 发现压了都RE 结果看了看数据,默默的把让fx的父亲变成fy反过来让fy的父亲变成fx 搞笑啊 #include<cstdio> ...
- EOJ 3031 二进制倒置
题目描述 给定一个整数 n(0≤n≤10100).将 n 的 334 位二进制表示形式(不包括开头可能的值为 0 的位,n=0 表示为 1 位 0)前后倒置,输出倒置后的二进制数对应的整数. 例如:n ...
- 一起学Android之Fragment
概述 本文以一个简单的小例子,简述在Android开发中,Fragment的常见用法,仅供学习分享使用,如有不足之处,还请指正. 什么是Fragment? Fragment代表一个功能或者用户界面的一 ...
- 为什么用Mysql?
阅读目录 楔子 初识数据库 为什么要用数据库 认识数据库 初识mysql mysql概念 下载和安装 初识sql语句 楔子 假设现在你已经是某大型互联网公司的高级程序员,让你写一个火车票购票系统,来h ...
- [] == ![]为什么是true
我们先来考虑这个问题,console.log([] == false)会打印什么呢? 答案是true.为什么呢? 首先,因为当"=="号两边其中一个是布尔值的话,先把它转换为数字( ...
- BZOJ4517: [Sdoi2016]排列计数(组合数+错位排列)
Time Limit: 60 Sec Memory Limit: 128 MBSubmit: 1626 Solved: 994[Submit][Status][Discuss] Descripti ...
- 利用javascript(自定义事件)记录尺寸可变元素的尺寸变化过程
1.效果图 2.源码 <%@ page contentType="text/html;charset=UTF-8" language="java" %&g ...