我正在开发一个需要将 XML 发送到服务器后端的 Web 应用程序。我想在客户端的内存中构建一个 XML 文档,但使用 XML 操作例程,而不是将无数的字符串附加在一起。我希望 jQuery 可以帮助我。
假设我需要用 JavaScript 生成这个(玩具)XML 文档:
<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>
首先,我需要使用“report”根创建某种 XML 文档对象。我假设其中一个应该接近,但它们都不能正常工作,和/或我无法弄清楚如何正确使用该对象:
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;
}
现在我想创建和附加元素。我怎么做?我想它是这样的:
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;
}
有任何想法吗?