我需要使用XMLService如下创建XML元素:
<serv:message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:serv="http://www.webex.com/schemas/2002/06/service">
我知道我可以使用以下Google Apps脚本代码添加一个名称空间,但是如何添加两个名称空间?
var ns = XmlService.getNamespace("serv", "http://www.webex.com/schemas/2002/06/service");
var root = XmlService.createElement("message", ns);
root.setNamespace(ns);
恐怕您无法使用当前XmlServices在同一元素中声明多个名称空间。我们希望Google将来可以实现类似的addNamespace
方法,但事实并非如此。您只能为每个元素声明一个名称空间。根据W3schools XML命名空间代码的示例代码。
<root>
<h:table xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table xmlns:f="http://www.w3schools.com/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
创建XML:
function createXml() {
var nsh = XmlService.getNamespace('h', 'http://www.w3.org/TR/html4/');
var nsf = XmlService.getNamespace('f', 'http://www.w3schools.com/furniture');
var root = XmlService.createElement('root');
var document = XmlService.createDocument(root);
var child1 = XmlService.createElement('table').setNamespace(nsh);
var tr = XmlService.createElement('tr').setNamespace(nsh);
var td1 = XmlService.createElement('td').setNamespace(nsh).setText('Apples');
var td2 = XmlService.createElement('td').setNamespace(nsh).setText('Bananas');
tr.addContent(td1).addContent(td2);
child1.addContent(tr);
root.addContent(child1);
var child2 = XmlService.createElement('table').setNamespace(nsf);
var property1 = XmlService.createElement('name').setNamespace(nsf).setText('Affrican Coffee Table');
var property2 = XmlService.createElement('width').setNamespace(nsf).setText('80');
var property3 = XmlService.createElement('length').setNamespace(nsf).setText('120');
child2.addContent(property1).addContent(property2).addContent(property3);
root.addContent(child2);
var xml = XmlService.getPrettyFormat().format(document);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句