Je travaille sur une application Web qui doit envoyer du XML à un serveur dorsal. J'aimerais construire un document XML en mémoire du côté client, mais en utilisant des routines de manipulation XML, au lieu d'ajouter d'innombrables chaînes de caractères. J'espère que jQuery pourra m'aider.
Disons que je dois générer ce document XML (jouet) avec JavaScript :
<report>
<submitter>
<name>John Doe</name>
</submitter>
<students>
<student>
<name>Alice</name>
<grade>80</grade>
</student>
<student>
<name>Bob</name>
<grade>90</grade>
</student>
</students>
</report>
Pour commencer, je dois créer une sorte d'objet document XML avec la racine "report". Je suppose que l'un de ces objets devrait être proche, mais aucun d'entre eux ne fonctionne correctement, et/ou je n'arrive pas à comprendre comment utiliser l'objet correctement :
function generateDocument1()
{
var report = $('<report></report>');
return report;
}
function generateDocument2()
{
var report = document.implementation.createDocument(null, "report", null);
return new XMLSerializer().serializeToString(report);
}
function createXmlDocument(string)
{
var doc;
if (window.DOMParser)
{
parser = new DOMParser();
doc = parser.parseFromString(string, "application/xml");
}
else // Internet Explorer
{
doc = new ActiveXObject("Microsoft.XMLDOM");
doc.async = "false";
doc.loadXML(string);
}
return doc;
}
function generateDocument3()
{
var report = createXmlDocument('<report></report>');
return report;
}
Maintenant, je veux créer et ajouter des éléments. Comment dois-je m'y prendre ? J'imagine que c'est quelque chose comme ça :
function generateReportXml()
{
// Somehow generate the XML document object with root
var report = /*???*/;
// Somehow create the XML nodes
var submitter = /*???*/;
var name = /*???*/;
// Somehow append name to submitter, and submitter to report
submitter.append(name); /*???*/
report.append(submitter); /*???*/
// ... append the rest of the XML
return report;
}
Des idées ?
0 votes
N'oubliez pas de consulter la solution de @AlexanderN à la fin si vous voulez une excellente méthode de plugin js pour créer des structures XML, y compris les attributs et CDATA.