我需要使用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转换正确运行
有人可以帮助我吗? 谢谢