Google Apps Script, как преобразовать XML / XSLT в выходной HTML-файл Drive - PullRequest
0 голосов
/ 16 января 2019

Мне нужно применить шаблон XSLT к XML-файлу на Google Drive Sheet с помощью Google Apps Script. У меня есть данные на Google Drive Sheet, и я читаю данные и создаю XML-файл, затем загружаю XSLT-шаблон в Drive и добавляю URL шаблона в 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 правильно и добавьте строку URL-адреса XSLT, но не применяйте преобразование XSLT. Но когда я копирую код вывода и запускаюсь по локальному пути, преобразование XSLT выполняется правильно

Кто-нибудь может мне помочь? Благодарю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...