Je suis à la recherche d'une bibliothèque JavaScript qui analyse une chaîne XML et la convertit en objet JavaScript. Quels sont les bons?XML to JavaScript Object
Répondre
est ici un joli convertisseur xml2json et json2xml:
- http://goessner.net/download/prj/jsonxml/
- tutoriel connexes: http://www.xml.com/pub/a/2006/05/31/converting-between-xml-and-json.html
est ici un autre:
En fonction de vos besoins, vous pourriez être en mesure d'utiliser un analyseur standard (voir http://www.w3schools.com/XML/tryit.asp?filename=tryxml_parsertest2) et XPath (http://www.w3schools.com/xpath/default.asp) - Voici un exemple:
et quelques bons tutoriels:
Le xml2json fichier javascript de https://bitbucket.org/surenrao/xml2json est tout ce que vous devez faire.
Voici le lien de téléchargement pour le téléchargement rapide: https://bitbucket.org/surenrao/xml2json/get/0e0989dfe48e.zip
Une fois inclus dans votre projet, voici quelques exemples de code pour vous aider à démarrer:
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
parse XML et renvoie un objet javascript w/un système cela correspond au xml. xml frères et sœurs w/le même nom sont regroupés dans des tableaux. Les nœuds avec des noms qui peuvent être trouvés dans le paramètre arrayTags (tableau de chaînes de noms de points) affichent toujours des tableaux même dans le cas d'une seule occurrence de tag. arrayTags peut être omis. nœuds de texte w/seuls les espaces sont supprimés. utilisez console.log (parseXml (myxml)) pour explorer la sortie
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;
}
Salut Maylow, Bienvenue à SO, Il sera plus utile si vous pouvez fournir une petite description avec vos réponses, –
heureux maintenant? ..... –
: D .... Nice .... Merci ...: D +1 pour cet effort –
- 1. Axis2 object to xml
- 2. Deserializing XML to Object
- 3. Javascript to points object
- 4. InvalidCastException Object [*] to Object []
- 5. LINQ to Object to DataSet
- 6. C++ Object Graph to C#
- 7. JSON Object to String
- 8. php Object to String
- 9. callback to model object
- 10. system.convert to custom object
- 11. XML Java Object
- 12. Javascript Object Fonction
- 13. Byte Array to Image object
- 14. Array Array to Object Array
- 15. requête ing LINQ to Object
- 16. Casting object to generic T
- 17. Xml Serialize Object (HttpBrowserCapabilities)
- 18. Somme Javascript Object
- 19. Javascript Object Inheritence
- 20. et [object HTMLInputElement] javascript
- 21. JavaScript Object Question
- 22. Prototype JavaScript Object littérales
- 23. linq to object - Méthode non trouvée
- 24. Java Serializable Object to Byte Array
- 25. Object to string et Vice Versa
- 26. DataTable to List <object>
- 27. Javascript Object -> SQL, en Javascript
- 28. JavaScript Object/Array access question
- 29. JavaScript Object confusion notation littérale
- 30. Javascript Object Literals et jQuery
Le problème avec la bibliothèque de Goessner est qu'elle renvoie une chaîne JSON. Vous finirez par convertir une chaîne XML en une chaîne JSON, que vous devrez alors analyser _again_ pour obtenir un objet Javascript réel. Cela fonctionnerait, mais il y a probablement une façon plus efficace de le faire. – nullability