JS—XML(DOM2)

实现DOM2级XML处理功能的浏览器为IE9及更高版本,Firefox,Safari,Chrome,Opera这些现代浏览器。

  • 创建xml文档对象
    var xmldom=document.implementation.createDocument('',"root",null);
    特点:参数序列分别为:(命名空间,xml文档根标签,文档声明)
    因为命名空间很难管理,所以不设置命名空间,xml没有文档声明,但是也必须要传递参数。

  • 载入xml
    dom2级不支持loadXML()方法,也不支持序列化.xml,但是提供.load方法载入xml文档,但是支持这个方法的只有火狐浏览器以及欧朋浏览器。

  • 载入xml文档load
    var xmldom=document.implementation.createDocument('',"root",null);
    xmldom.async=true;
    xmldom.onload=function(){
    alert(xmldom.documentElement.getElementsByTagName('user')[0].firstChild.nodeValue)
    }
    xmldom.load("demo.xml");
    特点:同样加载方式还是异步加载,只是不用再去判断文档就绪状态,而是直接使用onload事件来进行。

  • DOMParser()代替加载字符串的loadXML()
    该方法是Firefox提出的,后来其他浏览器也都支持了,用来弥补DOM2级不提供加载xml字符串的办法。
    var parser=new DOMParser();
    var xmldom=parser.parseFromString('<root><user>dudu</user></root>','text/xml');
    alert(xmldom.documentElement.firstChild.tagName)
    特点:
    1、第一步需要先创建一个DOMParser对象,然后调用该对象的parseFormString()
    2、参数:第一个参数是格式良好的xml字符串,第二个参数是文档类型。

  • XMLSerializer()代替 .xml序列化的方法
    var serializer=new XMLSerializer();
    var xml=serializer.serializeToString(xmldom);
    alert(xml);
    特点:
    1、第一步需要创建一个XMLSerializer对象,然后调用该对象的serializeToString()
    2、参数:xml文档对象

  • 错误解析
    parser.parseFromString根据传入的xml字符串进行解析,出现错误时,会从parser.parseFromString中返回一个Document对象,这个对象的的文档元素是<parsererror>,里面包含着错误信息
    var parser=new DOMParser();
    var xmldom=parser.parseFromString('<root><user>dudu<user></root>','text/xml');
    if(!xmldom.getElementsByTagName('parsererror').length)
    {
    var serializer=new XMLSerializer();
    var xml=serializer.serializeToString(xmldom);
    alert(xml);
    }else{
    alert(xmldom.getElementsByTagName('parsererror')[0].textContent)
    }
    特点:
    1、判断一下返回的xmldom对象是否包含parsererror就可以,如果包含则说明,解析出错。
    2、.textContent是xml的特有属性,类似于innerhtml是html的特有属性似的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,778评论 18 399
  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 1,703评论 0 6
  • 一. Java基础部分.................................................
    wy_sure阅读 3,839评论 0 11
  • 看完一个电影,才拿起手机忘记今天的作业还没有完成,时间显示十一点二十分。好吧,已经坚持了十九天了,还是会忘记。看来...
    小橙小橙小橙阅读 163评论 2 0
  • 所谓沟通就是彼此之间又说有应、有问有答。而在沟通当中,我认为只要把握好两个关键词,就应该不会是一次糟糕的沟通。一个...
    顺锅阅读 396评论 0 2