convert - Parse XML usando JavaScript
string to xml javascript (2)
A continuación, se analizará una cadena XML en un documento XML en todos los navegadores principales, incluido Internet Explorer 6. Una vez que tenga eso, puede usar los métodos / propiedades de cruce DOM habituales como childNodes y getElementsByTagName () para obtener los nodos que desee.
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");
}
Ejemplo de uso:
var xml = parseXml("<foo>Stuff</foo>");
alert(xml.documentElement.nodeName);
Que obtuve de https://stackoverflow.com/a/8412989/1232175 .
Esta pregunta ya tiene una respuesta aquí:
Necesito poder analizar XML usando JavaScript. El XML estará en una variable. Preferiría no usar jQuery u otros marcos.
He visto esto, lectura de XML> jQuery .
Supongo que de su última pregunta , hecha 20 minutos antes de esta, está tratando de analizar (leer y convertir) el XML encontrado mediante el uso de FindNearestAddress de GeoNames.
Si su XML está en una variable de cadena llamada txt
y se ve así:
<address>
<street>Roble Ave</street>
<mtfcc>S1400</mtfcc>
<streetNumber>649</streetNumber>
<lat>37.45127</lat>
<lng>-122.18032</lng>
<distance>0.04</distance>
<postalcode>94025</postalcode>
<placename>Menlo Park</placename>
<adminCode2>081</adminCode2>
<adminName2>San Mateo</adminName2>
<adminCode1>CA</adminCode1>
<adminName1>California</adminName1>
<countryCode>US</countryCode>
</address>
Luego puede analizar XML con JavaScript DOM de la siguiente manera:
if (window.DOMParser)
{
parser = new DOMParser();
xmlDoc = parser.parseFromString(txt, "text/xml");
}
else // Internet Explorer
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(txt);
}
Y obtenga valores específicos de los nodos como este:
//Gets house address number
xmlDoc.getElementsByTagName("streetNumber")[0].childNodes[0].nodeValue;
//Gets Street name
xmlDoc.getElementsByTagName("street")[0].childNodes[0].nodeValue;
//Gets Postal Code
xmlDoc.getElementsByTagName("postalcode")[0].childNodes[0].nodeValue;