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

问题描述 投票:1回答:2

我在GoogleDrive上存储了一些XML文件。我想使用Google Apps脚本将数据从XML文件传输到Google电子表格。

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

google-apps-script xml-parsing google-drive-api
2个回答
1
投票

[首先,您必须了解如何解析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


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();
© www.soinside.com 2019 - 2024. All rights reserved.