我正在编写一段代码,可以为我的工作流程做出很多贡献。我每天都会通过一个xml附件收到一封邮件到我的Gmail中的某个标签,我希望将其提取到特定的电子表格中。我正在尝试构建的是一个带有谷歌应用程序脚本的脚本,它将能够:
我的代码如下所示:
function RetrieveFeedAttachment() {
var label = GmailApp.getUserLabelByName("Label_Name");
var threads = label.getThreads();
var feed = SpreadsheetApp.openById("The_Specific_Spreadsheet_ID").getSheetByName("Spreadsheet_Name");
feed.clearContents();
for (var i = 0; i < threads.length; i++) {
if (threads[i].isUnread()) {
var msg = GmailApp.getMessagesForThread(threads[i]);
var xmlDoc = XmlService.parse(msg[0].getAttachments());
for(var j = 0; j < msg.length; j++) {
feed.appendRow(xmlDoc.getContent(j));
}
threads[i].markRead();
}
}
}
当我运行脚本调试器时,它向我显示以下通知“第1行出错:prolog中不允许内容。(第10行,文件”代码“)”
感谢您提供建议\帮助!
答案 0 :(得分:1)
方法getAttachments()
返回附件数组。这不是XmlService可以解析的XML文件。方法XmlService.parse()
接受字符串。
如果你可以假设只有一个附件,那么
msg[0].getAttachments()[0].getDataAsString()
应该为您提供一个可以使用XmlService.parse()
解析的字符串。否则,遍历附件数组。
您可能还希望将XmlService.parse()
放入try-catch块,以防出现带有非XML附件的消息。