Ich arbeite an einer Webanwendung, die XML an ein Server-Back-End senden muss. Ich möchte ein XML-Dokument im Speicher auf der Client-Seite erstellen, aber XML-Manipulationsroutinen verwenden, anstatt unzählige Strings zusammenzufügen. Ich hoffe, dass jQuery mir helfen kann.XML-Dokument mit JavaScript im Arbeitsspeicher erstellen
Sagen wir, ich brauche diese (Spielzeug) XML-Dokument mit JavaScript zu generieren:
<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>
zu starten, muss ich mit dem „Bericht“ root eine Art von einem XML-Dokument-Objekt erstellen. Ich bin einer von diesen unter der Annahme, sollte in der Nähe sein, aber keiner von ihnen arbeiten ganz richtig, und/oder kann ich nicht ganz herausfinden, wie das Objekt richtig zu nutzen:
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;
}
Jetzt will ich erstellen und anhängen Elemente. Wie mache ich das? Ich kann mir vorstellen, dass es so etwas ist:
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;
}
Irgendwelche Ideen?
Stellen Sie sicher, @AlexanderN Lösung am Ende überprüfen, ob Sie ein großes Plugin js Methode wollen Erstellen Sie XML-Strukturen, einschließlich Attribute und CDATA. – whyoz