一、IE中的XML(IE低版本才支持)

在统一的正式规范出来以前,浏览器对于 XML 的解决方案各不相同。DOM2 级提出了动态创建 XML DOM 规范,DOM3 进一步增强了 XML DOM。

所以,在不同的浏览器实现XML 的处理是一件比较麻烦的事情。

1.创建 XMLDOM 对象
IE 浏览器是第一个原生支持 XML 的浏览器,而它是通过 ActiveX 对象实现的。这个对象,只有 IE 有,一般是 IE9 之前采用。

微软当年为了开发人员方便的处理 XML,创建了MSXML 库,但却没有让 Web 开发人员通过浏览器访问相同的对象。

var xmlDom = new ActiveXObject('MSXML2.DOMDocument');

在这六个版本中微软只推荐三种:
  1.MSXML2.DOMDocument.6.0 最可靠最新的版本
  2.MSXML2.DOMDocument.3.0 兼容性较好的版本

  3.MSXML2.DOMDocument 仅针对 IE5.5 之前的版本

这三个版本在不同的 windows 平台和浏览器下会有不同的支持,那么为了实现兼容,我们应该考虑这样操作:从 6.0->3.0->备用版本这条路线进行实现。

    function createXMLDOM() {
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('您的系统或浏览器不支持 MSXML!'); //循环后抛出错误
}
var xmlDom = createXMLDOM();
alert(xmlDom);

2.载入 XML

如果已经获取了 XMLDOM 对象,那么可以使用 loadXML()和 load()这两个方法可以分别载入 XML 字符串或 XML 文件。

载入 XML 字符串:

    function createXMLDOM() {
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('您的系统或浏览器不支持 MSXML!'); //循环后抛出错误
}
var xmlDom = createXMLDOM();
xmlDom.loadXML('<root version="1.0"><user>Lee</user></root>');//载入XML字符串
alert(xmlDom.xml);//.xml属性可以序列化 XML,获取整个 XML 字符串 //loadXML 参数直接就是 XML 字符串,如果想效果更好,可以添加换行符\n。

载入 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<root>
<user>Lee</user>
<email>352019378@qq.com</email>
<url>http://www.baidu.com</url>
</root>
    function createXMLDOM() {
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('您的系统或浏览器不支持 MSXML!'); //循环后抛出错误
}
var xmlDom = createXMLDOM();
xmlDom.load('test.xml'); //载入一个 XML 文件
alert(xmlDom.xml);//.xml属性可以序列化 XML,获取整个 XML 字符串

3.获取XML文档中的数据:

当你已经可以加载了 XML,那么你就可以用之前学习的 DOM 来获取 XML 数据,比如标签内的某个文本。

   function createXMLDOM() {
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('您的系统或浏览器不支持 MSXML!'); //循环后抛出错误
}
var xmlDom = createXMLDOM();
xmlDom.loadXML('<root version="1.0"><user>Lee</user></root>');//载入XML字符串 var user = xmlDom.getElementsByTagName('user')[0]; //获取<user>节点
alert(user.tagName); //获取<user>元素标签
alert(user.firstChild.nodeValue); //获取<user>里的值 Lee,没有innerHTML(因为不是标准DOM)

DOM 不单单可以获取 XML 节点,也可以创建。

var email= xmlDom.createElement('email');//创建一个标签
xmlDom.documentElement.appendChild(email);//将创建的标签加载到XML文件中

总结:XML和XHTML一样可以通过标准DOM来操作

DOM操作XML文件的更多相关文章

  1. php中通过DOM操作XML

    DOM文档在js里早就接触过,知道DOM不但可以操作html文档,还可以操作XHTML,XML等文档,有着极强的通用性,下面我们通过两个小例子,看看在PHP中是如何用DOM操作XML文档的,和js中差 ...

  2. php : DOM 操作 XML

    DOM 操作 XML 基本用法 XML文件: person.XML <?xml version="1.0" encoding="utf-8" ?> ...

  3. Qt之QDomDocument操作xml文件-模拟ini文件存储

    一.背景 不得不说Qt是一个很强大的类库,不管是做项目还是做产品,Qt自身封装的东西就已经非常全面了,我们今天的这篇文章就是模拟了Qt读写ini文件的一个操作,当然是由于一些外力原因,我们决定自己来完 ...

  4. JAVA中通过Jaxp操作XML文件基础

    Java中有多种方式操作XML文件,目前讲一讲以SUN公司提供的DocumentBuilderFactory工厂类对象操作XML. 使用XML基本操作就是需要CRUD(增删改查),那么首先通过一个查询 ...

  5. 使用DOM解析xml文件

    使用DOM解析xml文件 要解析的xml文件如下: <?xml version="1.0" encoding="UTF-8"?> <Langu ...

  6. C#操作xml文件:使用XmlDocument 实现读取和写入

    XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内 ...

  7. Asp.Net 操作XML文件的增删改查 利用GridView

    不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...

  8. Java操作XML文件 dom4j 篇

    在项目中,我们很多都用到了xml文件,无论是参数配置还是与其它系统的数据交互.今天就来讲一下Java 中使用dom4j来操作XML文件. 我们需要引入的包: //文件包 import java.io. ...

  9. PHP操作XML文件学习笔记

    原文:PHP操作XML文件学习笔记 XML文件属于标签语言,可以通过自定义标签存储数据,其主要作用也是作为存储数据. 对于XML的操作包括遍历,生成,修改,删除等其他类似的操作.PHP对于XML的操作 ...

随机推荐

  1. 局域网内客户端无法使用机器名连接SQLServer服务器

    在生产环境中有时会要求使用机器名连接SQLServer服务器,但有时捣好久都没法连上~ 针对这个问题做个简短记录,防止以后自己再遇到记不起原因,也方便一下其他同行! 废话不多说,作为工作多年的老家伙了 ...

  2. XJad反编译工具

    XJad反编译工具 我们写的java文件,编译后就会生成相应的字节码文件,也就是.java文件经过编译以后生成.class文件 现在,假设我们现在存在这样一个问题:就是我们想自己动手验证注释会不会被编 ...

  3. 四种简单的sql语句(增删改查语句)

    四种简单的sql语句(增删改查语句) 一.插入语句 insert into [table] ([column],[column],[column]) values(?,?,?) 二.删除语句 dele ...

  4. 洛谷P3313 [SDOI2014]旅行(树链剖分 动态开节点线段树)

    题意 题目链接 Sol 树链剖分板子 + 动态开节点线段树板子 #include<bits/stdc++.h> #define Pair pair<int, int> #def ...

  5. <Android 基础(三十三)> TabHost ~ 仿微信底部菜单

    简介 Container for a tabbed window view. This object holds two children: a set of tab labels that the ...

  6. 更改Outlook 2013中Exchange数据文件存放路径

    昨天新入职目前所在的公司,在原公司一直都是直接使用Outlook设置用户名和密码后,然后将*.pst邮件的数据文件保存在其他盘符,以防止在更新操作系统时出现邮件丢失的情况:但是目前公司使用的是Exch ...

  7. 设定linux为多用户模式

    1.显示系统已经安装的组件,和可以安装的组件: #yum grouplist 2.如果系统安装之初采用最小化安装,没有安装xwindow,那么先安装: #yum groupinstall " ...

  8. Linux服务器redhat配置本地yum源

    前面给大家介绍了很多在Linux安装软件的知识,这些软件往往依赖了很多第三方的工具或者软件,如果在Linux服务器有外网的情况,咱们可以通过yum install这样的命令直接去安装这些相关的工具或者 ...

  9. 腾讯云Centos安装jdk8

    1.下载jdk1.8的tar cd /usr/local/src #切换到该目录下 wget url #下载jdk8的tar包 2.下载完成后解压tar包 tar -zxvf jdk-8u152-li ...

  10. LeetCode题解之 Search in a Binary Search Tree

    1.题目描述 2.问题分析 利用递归遍历二叉查找树. 3.代码 TreeNode* searchBST(TreeNode* root, int val) { if (root == NULL) ret ...