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='
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);
推荐阅读
- jhipster|jhipster 升级无效问题
- mybatisplus如何在xml的连表查询中使用queryWrapper
- CET4听力微技能一
- 【生信技能树】R语言练习题|【生信技能树】R语言练习题 - 中级
- 二十年后的家乡
- 唐嫣可真会穿,西装搭牛仔裤都能穿出高级感,一双大长腿太抢镜
- gitlab|Gitlab升级(12.2.1到14.6.4)
- 2018.03.18
- 幸福是个比较级
- 私有化轻量级持续集成部署方案--03-部署web服务(下)