首页 > 其他 > 详细

DOM2级中的XML

时间:2018-01-26 17:48:03      阅读:209      评论:0      收藏:0      [点我收藏+]

针对非IE浏览器的其他浏览器,即属于DOM2级浏览器(opera、firefox、chrome、safair),DOM2级使用document.implementation对象中的creatDocument()方法来创建xmlDom。

 

1、创建xmlDom

var xmlDom = document.implementation.creatDocument(‘‘,‘root‘,null);   //创建xmldom,并且提供了跟标签root

第一个参数:命名空间;

第二个参数:xml文件的跟标签;

第三个参数:文档声明。

 

2、使用标准的DOM创建节点

var xmlDom = document.implementation.creatDocument(‘‘,‘root‘,null);

var user = xmlDom.creatElement(‘user‘);

xmlDom.appendChild(user);

var userText = xmlDom.creatTextNode(‘lql‘);

user.appendChild(userText);

PS:DOM2级中的xmlDom无法通过loadxml()方法直接用字符串创建xml文档。支持load()方法载入外部文件

 

一:同步加载文件,使用load()方法

var xmlDom = document.implementation.creatDocument(‘‘,‘root‘,null);

xmlDom.async = false;

var user = xmlDom.creatElement(‘user‘);

xmlDom.appendChild(user);

xmlDom.load(‘demo.xml‘);

alert(xmlDom.getElementByTagName(‘user‘)[0].tagName);    //输出user

PS:DOM2级没有xml属性进行序列化排序

 

二:异步加载文件,使用load()方法

var xmlDom = document.implementation.creatDocument(‘‘,‘root‘,null);

xmlDom.async = true;

xmlDom.onload = function(){

  alert(xmlDom.getElementByTagName(‘user‘)[0].textContent);

}

xmlDom.load("demo.xml");

PS:load()方法只支持firefox浏览器和新版本的opera浏览器,其他浏览器不支持。

 

问题总结:

1、不能使用字符串来创建xml,比如类似IE中的loadxml()方法;

2、不能使用xml属性序列化字符标签

 

解决问题1://模拟loadxml()方法创建xml字符串

var xmlParse = new DOMParse();

var xmlStr = ‘<root><user>lql</user></root>‘;

var xmlDom = xmlParse.parseFromString(xmlStr,‘text/xml‘);

alert(xmlDom.getElementByTagName(‘user‘)[0].tagName);

 

解决问题2://模拟xml属性序列化字符标签

var serializer = new XMLSerializer();

var xml = serializer.serializerToString(xmlDom);

alert(xml);

 

DOM2级中的XML

原文:https://www.cnblogs.com/liangqilin/p/8360538.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!