我正在尝试同时创建三个具有共享值的XML文件(A,B和C)。不幸的是,当我尝试将一组元素分配给三个不同的父对象时,代码在定义的第二个父对象处返回了非显式错误。 而且我不知道如何在G-apps脚本中创建元素的“卷轴”副本。
我通过创建三倍的代码解决了这个问题,但这是一个痛苦的尝试,而且实际上是无用的...
var XMLrootA = XmlService.createElement('root');
var XMLrootB = XmlService.createElement('root');
var XMLrootC = XmlService.createElement('root');
var XMLsource = XmlService.createElement('source');
XMLsource.addContent(XmlService.createElement('reference').setText('toto'));
XMLrootA.addContent(XMLSource);
XMLrootB.addContent(XMLSource);
XMLrootC.addContent(XMLSource);
我希望XMLrootB和XMLrootC具有与XMLrootA相同的值,但是显然,禁止多重影响。
答案 0 :(得分:0)
XMLrootA
,XMLrootB
和XMLrootC
与XMLsource
具有相同的结构。XMLSource
,XMLrootA.addContent(XMLSource)
和XMLrootB.addContent(XMLSource)
中的XMLrootC.addContent(XMLSource)
与XMLsource
相同。
如果我的理解是正确的,那么该修改如何?请认为这只是几个答案之一。
cloneContent()
。XMLrootA
。然后,将每个元素复制到XMLrootB
和XMLrootC
。如果您的脚本经过修改(作为简单修改),那么以下修改后的脚本又如何呢?
var XMLrootA = XmlService.createElement('root');
var XMLrootB = XmlService.createElement('root');
var XMLrootC = XmlService.createElement('root');
var XMLsource = XmlService.createElement('source');
XMLsource.addContent(XmlService.createElement('reference').setText('toto'));
XMLrootA.addContent(XMLsource);
// I modified below script.
var copy1 = XMLsource.getParentElement().cloneContent();
for (var i = 0; i < copy1.length; i++) {
XMLrootB.addContent(copy1[i]);
}
var copy2 = XMLsource.getParentElement().cloneContent();
for (var i = 0; i < copy2.length; i++) {
XMLrootC.addContent(copy2[i]);
}
在此修改后的脚本中,复制方法是从上述脚本中修改的。
var XMLrootA = XmlService.createElement('root');
var XMLrootB = XmlService.createElement('root');
var XMLrootC = XmlService.createElement('root');
var XMLsource = XmlService.createElement('source');
XMLsource.addContent(XmlService.createElement('reference').setText('toto'));
XMLrootA.addContent(XMLsource);
// I modified below script.
var root = [XMLrootB, XMLrootC];
root.forEach(function(e) {
var copy = XMLsource.getParentElement().cloneContent();
copy.forEach(function(f) {
e.addContent(f);
});
});
如果我误解了您的问题,而这不是您想要的方向,我深表歉意。