read parse convert javascript xml domparser

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;

JSFiddle