我正在尝试同时创建三个具有共享值的XML文件(a,b和c(。不幸的是,当我尝试将一组元素分配给三个不同的父母时,代码会在第二个父母定义的非明确错误返回。
。我不知道如何创建"卷轴"元素的副本。
我通过创建代码三次解决了问题,但它是非生产的。
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
相同的值,但是显然,多种影响是禁止的。
- 您想使用复制元素来创建多个XML数据。
- 您想制作
XMLrootA
,XMLrootB
和XMLrootC
与XMLsource
具有相同的结构。 -
XMLrootA.addContent(XMLSource)
,XMLrootB.addContent(XMLSource)
和XMLrootC.addContent(XMLSource)
的XMLSource
与XMLsource
相同。- 这是由于您发布问题时的错综复杂。
如果我的理解是正确的,那么这种修改怎么样?请将其视为几个答案之一。
修改点:
- 在您的情况下,我使用了
cloneContent()
。 - 首先,它创建
XMLrootA
。然后,将每个元素复制到XMLrootB
和XMLrootC
。
修改后的脚本1:
如果您的脚本被修改为简单修改,那么以下修改后的脚本如何?
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]);
}
修改后的脚本2:
在此修改后的脚本中,复制方法是从上面的脚本修改的。
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);
});
});
注意:
- 这是一个简单的示例脚本。因此,请在您的情况下修改此。
参考:
- 类XMLService
- clonecontent((
如果我误解了您的问题,这不是您想要的方向,我深表歉意。