我在GoogleDrive上存储了一些XML文件。我想使用Google Apps脚本将数据从XML文件传输到Google电子表格。
是否可以使用Google Apps脚本解析XML文件(存储在GoogleDrive中)?
[首先,您必须了解如何解析XML数据,以使用应用程序脚本获取文件。不幸的是,我们无法直接在Google驱动器中获取xml文件。它必须位于Google Drive外部或永恒的网站中。在使用应用程序脚本解析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。
我在这里发布了类似的问题:
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();