2017-08-16 56 views
0

我试图用谷歌应用程序脚本生成XML文件。 XML文件应具有2个连接件部分是这样的:如何使用谷歌应用程序在脚本中制作重复条目

<xmeml version="4"> 
    <sequence> 
    <clipitem> 
     <link> 
      <linkclipref>clipitem-1</linkclipref> 
      <mediatype>video</mediatype> 
      <trackindex>1</trackindex> 
      <clipindex>1</clipindex> 
     </link> 
     <link> 
      <linkclipref>clipitem-2</linkclipref> 
      <mediatype>audio</mediatype> 
      <trackindex>1</trackindex> 
      <clipindex>2</clipindex> 
     </link> 
    </clipitem> 
    </sequence> 
</xml> 

我目前使用如下因素代码:

function createXml(e) { 
    var xml = new XML('<xmeml/>'); 
    xml['@version'] = '4'; 
    xml.sequence.clipitem.link.linkclipref = "clipitem-1; 
    xml.sequence.clipitem.link.mediatype="video"; 
    xml.sequence.clipitem.link.trackindex = 1; 
    xml.sequence.clipitem.link.clipindex = 1; 

    xml.sequence.clipitem.link.linkclipref = "clipitem-2; 
    xml.sequence.clipitem.link.mediatype="audio"; 
    xml.sequence.clipitem.link.trackindex = 1; 
    xml.sequence.clipitem.link.clipindex = 2; 
    var xml_result = xml.toString(); 

    var blob = Utilities.newBlob(xml_result, 'text/html', e.parameter.filename + '.xml'); 
    return blob; 
} 

生成的XML看起来是这样的:

<xmeml version="4"> 
    <sequence> 
     <clipitem> 
      <link> 
       <linkclipref>clipitem-2</linkclipref> 
       <mediatype>audio</mediatype> 
       <trackindex>1</trackindex> 
       <clipindex>2</clipindex> 
      </link> 
     </clipitem> 
    </sequence> 
</xml> 

不幸它不起作用,因为第二个xml.sequence.clipitem会覆盖第一个。我如何防止这种情况发生?

感谢, 巴特

回答

0

既然你是XML对象转换为字符串,可以随时创建XML作为从一开始的字符串。

function createXml(e) { 
    var data = [["clipitem-1","video",1,1],["clipitem-2","audio",1,2]]; 
    var xml ='<xmeml version="4"><sequence><clipitem>'; 
    for(var i=0;i<data.length;i++){ 
    xml+="<link><linkclipref>"+data[i][0]+"</linkclipref><mediatype>"+data[i][3]+"</mediatype><mediatype>"+data[i][3]+"</mediatype></link>" 
    } 
    xml+="</clipitem></sequence></xml>"; 
    var blob = Utilities.newBlob(xml, 'text/html', e.parameter.filename + '.xml'); 
    return blob; 
} 
+0

虽然我希望有更多的东西来整理它,然后把结果字符串粘贴在一起看起来像是我可能会用到的东西。我可能会使用多个对象,我将它们转换为字符串,然后再进行组合以提高可读性。 –

相关问题