js中对XML的处理

以下总结多数取自于mxGraph源代码

一、创建空的XML document对象

 function createXmlDocument()
    {
        var doc = null;
        
        if (document.implementation && document.implementation.createDocument)
        {
            doc = document.implementation.createDocument('', '', null);
        }
        else if (window.ActiveXObject)
        {
            doc = new ActiveXObject('Microsoft.XMLDOM');
         }
         
         return doc;
    }

二、从xml字符串中解析xml,返回xml document对象

function parseXML(xml)//xml是字符串表示的xml
{
    if(navigator.userAgent.indexOf('MSIE') >= 0)  //IE
   { 
                var doc = null;
        
        if (document.implementation  && document.implementation.createDocument)
        {
            doc = document.implementation.createDocument('', '', null);
        }
        else if (window.ActiveXObject)
        {
            doc = new ActiveXObject('Microsoft.XMLDOM');
         }
           doc.async = 'false';
           doc.loadXML(xml);
           return doc;
    }else 
    {
           var parser = new DOMParser();        
       return parser.parseFromString(xml, 'text/xml');
     }
}

三、xml document对象的作用

接下来,就可以使用这个对象来查找所需的信息了。

var xmlDocument=parseXML(xml);

var node=xmlDocument.documentElement;//这个就是根节点了。

四、其他

判断给定的对象是否是xml 节点,是否某个属性值为某个值

 function isNode(value, nodeName, attributeName, attributeValue)
     {
         if (value != null && !isNaN(value.nodeType) && (nodeName == null ||
             value.nodeName.toLowerCase() == nodeName.toLowerCase()))
         {
             return attributeName == null ||
                 value.getAttribute(attributeName) == attributeValue;
         }
         
         return false;
     }

 

原文地址:https://www.cnblogs.com/tazi/p/2862406.html