Generieren Sie XML-Dokumente im Speicher mit JavaScript

Arbeite ich an einer Web-Anwendung, die senden muss, um XML zu einem server-backend. Ich möchte zu bauen, die ein XML-Dokument im Speicher auf der client-Seite, sondern über XML-manipulation Routinen, anstelle von Anhängen unzählige Saiten zusammen. Ich hoffe, dass jQuery mir helfen können.

Sagen wir mal ich brauche zu generieren, diese (toy) XML-Dokument mit 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>

Starten, muss ich eine Art von XML-Dokument-Objekt mit dem "report" - Stamm. Ich nehme an, einer von diesen sollte in der Nähe sein, aber keiner von Ihnen arbeiten ganz rechts, und/oder ich kann nicht ganz herausfinden, wie, um das Objekt richtig:

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;
}

Möchte ich nun erstellen und anfügen von Elementen. Wie mache ich das? Ich vorstellen, es ist so etwas wie dieses:

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?

InformationsquelleAutor der Frage Shaggy Frog | 2010-07-07

Schreibe einen Kommentar