risposta Aggiornato per il 2017
Di seguito vi analizzare un XML stringa in un documento XML in tutti i principali browser. A meno che non hai bisogno di supporto per IE < = 8 o qualche oscuro del browser, è possibile utilizzare la seguente funzione:
function parseXml(xmlStr) {
return new window.DOMParser().parseFromString(xmlStr, "text/xml");
}
Se è necessario supportare IE < = 8, il seguente farà il lavoro:
var parseXml;
if (typeof window.DOMParser != "undefined") {
parseXml = function(xmlStr) {
return new window.DOMParser().parseFromString(xmlStr, "text/xml");
};
} else if (typeof window.ActiveXObject != "undefined" &&
new window.ActiveXObject("Microsoft.XMLDOM")) {
parseXml = function(xmlStr) {
var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(xmlStr);
return xmlDoc;
};
} else {
throw new Error("No XML parser found");
}
una volta che avete un Document
ottenuto tramite parseXml
, è possibile utilizzare i soliti DOM traversal metodi/proprietà quali childNodes
e getElementsByTagName()
per ottenere i nodi che si desidera .
Esempio utilizzo:
var xml = parseXml("<foo>Stuff</foo>");
alert(xml.documentElement.nodeName);
Se stai usando jQuery, a partire dalla versione 1.5 è possibile utilizzare la sua built-in parseXML()
metodo, che è funzionalmente identico alla funzione di cui sopra.
var xml = $.parseXML("<foo>Stuff</foo>");
alert(xml.documentElement.nodeName);
fonte
2011-12-07 09:27:30
ho creato ad alte prestazioni [XML Parser] (https://github.com/NaturalIntelligence/fast-xml-parser). Dai un'occhiata per il confronto con altre librerie. –