2016-11-29 68 views
0

我有2个xml文档存储在AJAX post请求中,我想检查它们是否相同。显然xml1 == xml2不起作用。有另一种方法可以使这项工作?检查2个XML文档是否与javascript相同

+4

在JavaScript中没有内置的方法。您必须提供代码,使用适合您的应用程序的任何标准在DOM树之间执行比较。 – Pointy

+0

@积分谢谢。这就是我的想法,但我想确保没有更简单的方法。 – Sky

回答

1

试试这个。它使用this question中的方法解析XML文档,并使用isEqualNode比较两者。

function parseXMLString(xmlString) { 
 
    var xmlDoc; 
 

 
    if (window.DOMParser) { 
 
    var parser = new DOMParser(); 
 
    xmlDoc = parser.parseFromString(xmlString, "text/xml"); 
 
    } else // Internet Explorer 
 
    { 
 
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
 
    xmlDoc.async = false; 
 
    xmlDoc.loadXML(xmlString); 
 
    } 
 

 
    return xmlDoc; 
 
} 
 

 
var xmlObj1 = parseXMLString('<hello>world</hello>'); 
 

 
var xmlObj2 = parseXMLString('<hello>world</hello>'); 
 

 
var xmlObj3 = parseXMLString('<hello>world2</hello>'); 
 

 
var xmlObj4 = parseXMLString('<hello2>world</hello2>'); 
 

 
console.log(xmlObj1.isEqualNode(xmlObj2)); 
 
console.log(xmlObj1.isEqualNode(xmlObj3)); 
 
console.log(xmlObj1.isEqualNode(xmlObj4));

如果你使用jQuery,您可以分析使用parseXML() XML文档。