DOM级XML操作方法

// DOM2级XML
// 创建XMLDOM对象
var xmlDom = document.implementation.createDocument('','root',null); //XML DOM对象已创建,并且提供了root根标签
//alert(xmlDom);
//alert(xmlDom.documentElement.tagName); //获取根标签
alert(xmlDom.getElementsByTagName('root')[0].tagName); //获取根标签第二种方法

//使用标准DOM去创建节点 var user = xmlDom.createElement('user'); xmlDom.documentElement.appendChild('user'); alert(xmlDom.getElementsByTagName('user')[0].tagName); //PS:DOM2级的XML DOM对象是不支持loadXML()方法,无法简易的直接创建XML字符串

【DOM级XML操作方法】//同步加载xml文件
//PS :有没有load()方法,载入外部XML文件
var xmlDom = document.implementation.createDocument('','root',null);
xmlDom.async=false; //false是同步 true是异步 默认异步
xmlDom.load('demo.xml'); //载入外部XML文件
// alert(xmlDom.xml); //输出序列化后的XML字符串 报错
alert(xmlDom.getElementsByTagName('user')[0].tagName);
alert(xmlDom.getElementsByTagName('user')[0].firstChild.nodeValue);
alert(xmlDom.getElementsByTagName('user')[0].textContent); //相当于XHTML节点中的innerHTML w3c写法 IE不支持
//PS:DOM2级是没有.xml属性来序列化XML字符的

//异步加载xml文件
var xmlDom = document.implementation.createDocument('','root',null);
xmlDom.async=true;
xmlDom.onload=function(){ //异步加载通过onload即可,类似IE中的就绪状态事件
alert(xmlDom.getElementsByTagName('user')[0].textContent);
};
xmlDom.load('demo.xml');
//PS:load()方法只支持Firefox浏览器和新版本的Opera浏览器,其它浏览器不支持
//问题
//1 不能简易 的使用字符串来创建XML,比如类似与IE的loadXML()方法。
//2 不能够像IE中那样 通过.xml序列化XML字符串输出
//DOMParser类型
//模拟loadXML()方法,可以简易的创建XML字符串
var xmlParser = new DOMParser(); //创建DOMParser对象
//alert(xmlParser);
var xmlStr='lee'; //xml字符串
var xmlDom =xmlParser.parserFromString(xmlStr,'text/xml'); //XMLDocumentXMLDOM
alert(xmlDom.getElementsByTagName('user')[0].tagName);
//模拟.xml属性序列化字符串
var serializer = new XMLSerializer();
var xml = serializeToString(xmlDom);
alert(xml);

    推荐阅读