我在GoogleDrive上存储了一些XML文件。我想通过谷歌应用脚本将数据从XML文件传输到谷歌电子表格。
是否可以使用Google应用脚本解析XML文件(存储在GoogleDrive上)?
答案 0 :(得分:1)
首先,您必须了解如何解析XML数据,以使用应用程序脚本获取文件。很遗憾,我们无法直接在Google云端硬盘中获取xml文件。它必须位于谷歌驱动器外或永恒网站。 在使用解析xml:
的应用脚本时,请参阅此site// Log the title and labels for the first page of blog posts on the Google Apps Developer blog.
function parseXml() {
var url = 'http://googleappsdeveloper.blogspot.com/atom.xml';
var xml = UrlFetchApp.fetch(url).getContentText();
var document = XmlService.parse(xml);
var root = document.getRootElement();
var atom = XmlService.getNamespace('http://www.w3.org/2005/Atom');
var entries = document.getRootElement().getChildren('entry', atom);
for (var i = 0; i < entries.length; i++) {
var title = entries[i].getChild('title', atom).getText();
var categoryElements = entries[i].getChildren('category', atom);
var labels = [];
for (var j = 0; j < categoryElements.length; j++) {
labels.push(categoryElements[j].getAttribute('term').getValue());
}
Logger.log('%s (%s)', title, labels.join(', '));
}
}
然后将值转发到将创建电子表格的函数。这是另一个有用的tutorial。
答案 1 :(得分:1)
我在这里发布了类似的问题:
How to parse a XML file stored in my google drive but which stands out as a html type?
如果我了解您的情况,它可能会为您提供帮助:您将xml文件存储在Google驱动器中,而不是在外部网站上。
首先,如果XmlFileonDrive是表示驱动器上的xml文件的对象 您可以像这样检索fileId:
var fileId=XmlFileonDrive.getUrl().match(/https:\/\/drive.google.com\/file\/d\/(.*)\/view.*/)[1];
然后,您可以对它们进行xmlParsing解析,就像现在对我来说一样:
var data = DriveApp.getFileById(fileId).getBlob().getDataAsString();
var xmlDocument=XmlService.parse(data);
var root=xmlDocument.getRootElement();
var mynamespace=root.getNamespace();
var titleTag=root.getChild("title",root.getNamespace()).getText();