使用Google应用脚本解析XML文件(存储在GoogleDrive上)

时间:2016-03-08 17:10:02

标签: google-apps-script xml-parsing google-drive-api

我在GoogleDrive上存储了一些XML文件。我想通过谷歌应用脚​​本将数据从XML文件传输到谷歌电子表格。

是否可以使用Google应用脚本解析XML文件(存储在GoogleDrive上)?

2 个答案:

答案 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();