tag read node documentelement create attribute javascript xml json
https://bitbucket.org/surenrao/xml2json/get/0e0989dfe48e.zip

read - Objeto XML a JavaScript



title tag html (3)

Estoy buscando una biblioteca de JavaScript que analiza una cadena XML y la convierte en un objeto de JavaScript. ¿Cuáles son algunos buenos?



El archivo javascript xml2json de https://bitbucket.org/surenrao/xml2json es todo lo que necesita para hacer esto.

Aquí está el enlace de descarga para una descarga rápida: https://bitbucket.org/surenrao/xml2json/get/0e0989dfe48e.zip

Una vez incluido en su proyecto, aquí hay algunos ejemplos de código para comenzar:

var xmlStr = "<root><person><name>Bob Dylan</name></person></root>"; var jsObj = X2J.parseXml(xmlStr); var result = jsObj[0].root[0].person[0].name[0].jValue; //Bob Dylan


analiza XML y devuelve un objeto javascript con un esquema que corresponde al xml. Los hermanos xml con el mismo nombre se contraen en arreglos. Los nodos con nombres que se pueden encontrar en el parámetro arrayTags (matriz de cadenas de nombre de etiqueta) siempre se registran matrices, incluso en el caso de que solo ocurra una etiqueta. arrayTags puede ser omitido. Los nodos de texto con solo espacios son descartados. use console.log (parseXml (myxml)) para explorar la salida

parseXml(xml, arrayTags) { var dom = null; if (window.DOMParser) { dom = (new DOMParser()).parseFromString(xml, "text/xml"); } else if (window.ActiveXObject) { dom = new ActiveXObject(''Microsoft.XMLDOM''); dom.async = false; if (!dom.loadXML(xml)) { throw dom.parseError.reason + " " + dom.parseError.srcText; } } else { throw "cannot parse xml string!"; } function isArray(o) { return Object.prototype.toString.apply(o) === ''[object Array]''; } function parseNode(xmlNode, result) { if (xmlNode.nodeName == "#text") { var v = xmlNode.nodeValue; if (v.trim()) { result[''#text''] = v; } return; } var jsonNode = {}; var existing = result[xmlNode.nodeName]; if(existing) { if(!isArray(existing)) { result[xmlNode.nodeName] = [existing, jsonNode]; } else { result[xmlNode.nodeName].push(jsonNode); } } else { if(arrayTags && arrayTags.indexOf(xmlNode.nodeName) != -1) { result[xmlNode.nodeName] = [jsonNode]; } else { result[xmlNode.nodeName] = jsonNode; } } if(xmlNode.attributes) { var length = xmlNode.attributes.length; for(var i = 0; i < length; i++) { var attribute = xmlNode.attributes[i]; jsonNode[attribute.nodeName] = attribute.nodeValue; } } var length = xmlNode.childNodes.length; for(var i = 0; i < length; i++) { parseNode(xmlNode.childNodes[i], jsonNode); } } var result = {}; if(dom.childNodes.length) { parseNode(dom.childNodes[0], result); } return result; }