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('dudu','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对象,这个对象的的文档元素是,里面包含着错误信息
    var parser=new DOMParser();
    var xmldom=parser.parseFromString('dudu','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的特有属性似的。

你可能感兴趣的:(JS—XML(DOM2))