Google Apps脚本如何将XML / XSLT转换为输出HTML文件驱动器

时间:2019-01-16 19:40:36

标签: xml xslt google-apps-script google-sheets transformation

我需要使用Google Apps脚本将XSLT模板应用于Google云端硬盘中的XML文件。 我在Google云端硬盘工作表中有数据,我读取了数据并创建了XML文件,然后在Drive上载了XSLT模板,并在XML文件中添加了模板的网址..... 这是代码:

var ssId = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; 

function doGet(e) {

  var xml1 = '<?xml version="1.0" encoding="utf-8"?>'; 
  var xml1 = xml1 + '<?xml-stylesheet type="text/xsl" href="https://drive.google.com/uc?export=download&id=XXXXXXXXXXXXXXXXX" ?>' ; 
  var xml1 = xml1 + "<houses></houses>"; 

  var document = XmlService.parse(xml1);
  var root = document.getRootElement();

  var sh = SpreadsheetApp.openById(ssId) ;
  var sheet = sh.getSheets();
  var dades = sheet[0].getDataRange().getValues();  


  for(i in dades){
       var row = dades[i]; 
    if(i>0) 
    {
       var titol = row[0]; 
       var categoria = row[1]; 
       var foto = row[2]; 
       var preu = row[3]; 
       var metres = row[4]; 
       var pisos = row[5]; 


        var row = XmlService.createElement('house');
        var vbl = XmlService.createElement('name').setText(titol);
        row.addContent(vbl)
        var vbl = XmlService.createElement('category').setText(categoria);
        row.addContent(vbl)

        var row1 = XmlService.createElement('information');
        var vbl = XmlService.createElement('foto').setText(foto);
        row1.addContent(vbl); 
        var vbl = XmlService.createElement('price').setText(preu);
        row1.addContent(vbl); 
        var vbl = XmlService.createElement('meters').setText(metres);
        row1.addContent(vbl); 
        var vbl = XmlService.createElement('steps').setText(pisos);
        row1.addContent(vbl); 

        row.addContent(row1); 

        root.addContent(row)
    }

  }




  return ContentService.createTextOutput('<?xml version="1.0" encoding="utf-8"?> \n <?xml-stylesheet type="text/xsl" href="https://drive.google.com/uc?export=download&id=XXXXXXXXXXXXXXXXX" ?> \n' + XmlService.getPrettyFormat().format(root)).setMimeType(ContentService.MimeType.XML);    

}

当我发布脚本时,正确返回XML代码并添加XSLT url行,但不应用转换XSLT。但是,当我复制输出代码并在本地路径上运行时,XSLT转换正确运行

有人可以帮助我吗? 谢谢

0 个答案:

没有答案