Caricare un xml in una class con Javascript

Come posso caricare un file XML in class utilizzando Javascript?

Purtroppo, each browser presenta un proprio modo di analizzare una string contenente XML. Ecco i modi che conosco per ognuno dei 3 grandi browser. Si prega di notare che non ho avuto la possibilità di provare ognuno di questi come sono passati da diversi blog e dalla mia memory.

Firefox ha un object denominato DOMParser che può essere utilizzato per analizzare XML in una string. L'API è abbastanza semplice – istanziare il DOMParser e call il suo metodo parseFromString . Ecco un esempio:

 var xmlString = '<?xml version="1.0"?>...'; var parser = new DOMParser(); var dom = parser.parseFromString(theString, "text/xml"); // use dom 

IE utilizza il controllo Microsoft ActiveX XMLDOM, quindi è necessario eseguire l'istanza del controllo DOM e utilizzare i suoi methods, ancora qui è un esempio:

 var xmlString = '<?xml version="1.0"?>...'; dom=new ActiveXObject("Microsoft.XMLDOM"); dom.async="false"; dom.loadXML(xmlString); // use dom 

E, infine, la versione Weirdo Safari. Safari non dispone di un parser incorporato e il fatto che non viene eseguito in Windows non support i controlli ActiveX. Tuttavia, Safari support i data: urls. In Safari un URL con il documento viene creato e richiamato tramite un XMLHTTPRequest. Come tutte le XMLHttpRequests, si utilizza la properties; standard responseXml di XMLHttpRequest per accedere al DOM.

 var xmlString = '<?xml version="1.0"?>...'; var url = "data:text/xml;charset=utf-8," + encodeURIComponent(xmlString); var xhr = new XMLHttpRequest(); xhr.open("GET", url, false); xhr.send(null); var dom = xhr.responseXML; // Use dom here 

Non sono a conoscenza di un serializer / deserializzatore XML incorporato in JavaScript. Siete considerati nativi a JavaScript, come JSON?

Ecco un converter XML di JSON Javascript che potrebbe guidarti nella giusta direzione.

Questo codice funziona per tutti i tipi di browser

 var url="file.xml" var xmlDoc=""; if(window.XMLHttpRequest&&!window.ActiveXObject) { var Gz=new XMLHttpRequest();Gz.open('GET',url,false);Gz.send(null);xmlDoc=Gz.responseXML; } else { xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async=false;xmlDoc.load(url); } 

Dopo l'utilizzo, è ansible analizzare il tag e recuperare i dati.