Estoy buscando una biblioteca JavaScript que analice una cadena XML y la convierta en un objeto JavaScript. ¿Cuáles son algunos buenos?XML to JavaScript Object
Respuesta
Aquí es un buen xml2json y json2xml convertidor:
- http://goessner.net/download/prj/jsonxml/
- tutorial relacionadas: http://www.xml.com/pub/a/2006/05/31/converting-between-xml-and-json.html
Aquí hay otro:
Dependiendo de sus necesidades, es posible que pueda utilizar un programa de análisis estándar (ver http://www.w3schools.com/XML/tryit.asp?filename=tryxml_parsertest2) y XPath (http://www.w3schools.com/xpath/default.asp) - he aquí un ejemplo:
y algunos buenos tutoriales:
El xml2json Javascript archivo desde https://bitbucket.org/surenrao/xml2json es todo lo que necesita para hacer esto.
Aquí está el enlace de descarga para la descarga rápida: https://bitbucket.org/surenrao/xml2json/get/0e0989dfe48e.zip
Una vez incluido en su proyecto, aquí algunos ejemplos de código para empezar:
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
un análisis sintáctico XML y devuelve un objeto de javascript w/un esquema que corresponde al xml. Los hermanos xml con el mismo nombre se contraen en matrices. los nodos con nombres que se pueden encontrar en el parámetro arrayTag (matriz de cadenas de nombre de tag) siempre muestran matrices, incluso en el caso de una sola aparición de etiqueta. arrayTags se pueden omitir. nodos de texto con solo espacios descartados. utilizar 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;
}
Hola Maylow, Bienvenido a SO, será más útil si puedes proporcionar una pequeña descripción junto con tus respuestas, –
feliz ahora? ..... –
: D .... Agradable ... Gracias ...: D +1 por ese esfuerzo –
- 1. C++ XML to C++ Object Mapping library?
- 2. javascript add one minute to time object
- 3. Object to Object Mapping Utility
- 4. object to string array
- 5. 3ds max object to opengl
- 6. ¿Qué significa [object Object]? (JavaScript)
- 7. create xml from object
- 8. seleccione XML Nodo usando LINQ to XML
- 9. XML to C struct y C struct to XML
- 10. Js Fecha object to python datetime
- 11. Java: Casting Object to Array type
- 12. Qt object/class to Qt ui file
- 13. DataTable to List <object>
- 14. JSON to javaScript array
- 15. LINQ to XML GroupBy
- 16. XML Document to String?
- 17. Javascript object inheritance
- 18. Safe-casting text to XML
- 19. consulta LINQ to XML atributos
- 20. LINQ to XML - ¿Cómo funciona?
- 21. Serialize Python dictionary to XML
- 22. Javascript Object push() la función
- 23. JavaScript Object Literals & Array Literals
- 24. javascript date to string
- 25. Pull to Refresh Javascript
- 26. ¿Qué significa [object Object]?
- 27. Lista <Map <String, Object >> to org.json.JSONObject?
- 28. Idiomatic Analog to Ruby's `Object # tap` para comando Unix ¿Tuberías?
- 29. cómo guardar activerecord object of rails to redis
- 30. ¿Por qué JavaScript devuelve [Object Object] de valueOf() en lugar de [object]?
El problema con la biblioteca de Goessner es que devuelve una cadena JSON. Terminará convirtiendo una cadena XML en una cadena JSON, que luego tendrá que analizar _again_ para obtener un objeto JavaScript real. Funcionaría, pero probablemente exista una manera más eficiente de hacerlo. – nullability