zoukankan      html  css  js  c++  java
  • xml

    当创建的Dom文档放进了XML内容,那么就可以像对Dom进行交互一样使用所有的方法和属性
     
    如果直接访问一个对象会调用它的valueof方法,如xmldom.parseError
     
    对onreadystatechange事件的函数赋值一定要在调用load()之前,确保函数能够及时被触发调用,同时需要注意的是,在事件处理函数里面,不能使用this指向本身(而是使用该XML 文档变量),ActiveX 对象不允许使用this出于安全考虑。
     
     
     跨浏览器解析XML为Dom object函数:
    function parseXml(xml){                                                                       
    var xmldom = null;
    if (typeof DOMParser != “undefined”){
    xmldom = (new DOMParser()).parseFromString(xml, “text/xml”);
    var errors = xmldom.getElementsByTagName(“parsererror”);           
     
    if (errors.length){
         throw new Error(”XML parsing error:” + errors[0].textContent);
    } else if (typeof ActiveXObject != ”undefined”){
    xmldom = createDocument();
    xmldom.loadXML(xml);
    if (xmldom.parseError != 0){
         throw new Error(”XML parsing error: ” + xmldom.parseError.reason);
    }
    } else {
         throw new Error(”No XML parser available.”);
    }
    return xmldom;
    }
     
    function createDocument(){                                                                       //针对ie
    if (typeof arguments.callee.activeXString != “string”){                                //把信息存储到该函数对象里arguments.callee
    var versions = [“MSXML2.DOMDocument.6.0”, “MSXML2.DOMDocument.3.0”,“MSXML2.DOMDocument”],
    i, len;
    for (i=0,len=versions.length; i < len; i++){
    try {
    new ActiveXObject(versions[i]);
    arguments.callee.activeXString = versions[i];
    break;
    } catch (ex){
    //skip
    }
    }
    }
    return new ActiveXObject(arguments.callee.activeXString);
    }
     
    使用方法:
    var xmldom = null;
    try {
         xmldom = parseXml(“<root><child/></root>”);
    } catch (ex){
         alert(ex.message);
    }
    //further processing
     
     
    把Dom对象转化为XML:
    function serializeXml(xmldom){
    if (typeof XMLSerializer != “undefined”){
         return (new XMLSerializer()).serializeToString(xmldom);
    } else if (typeof xmldom.xml != “undefined”){
         return xmldom.xml;
    } else {
         throw new Error(“Could not serialize XML DOM.”);
    }
    }
  • 相关阅读:
    poj2388-Who's in the Middle(排序)
    poj1543-Perfect Cubes(暴力)
    poj1664-放苹果(递归)
    快速幂
    poj2389-Bull Math(大整数乘法)
    HDU2608-0 or 1(数论+找规律)
    poj1131-Octal Fractions(进制转换)
    [noip2011 d1t2]选择客栈
    [周记]8.7~8.16
    [noip2012d1t2] 国王游戏
  • 原文地址:https://www.cnblogs.com/chuangweili/p/5166309.html
Copyright © 2011-2022 走看看