Google Apps 脚本:如何修复“prolog 中不允许的内容”

Google Apps Script: How to fix "content is not allowed in prolog"

本文关键字:不允许 prolog 脚本 Apps 何修复 Google      更新时间:2023-09-26

我正在尝试使用Google Apps Script XmlService解析以下XML文件:

<?xml version="1.0" encoding="UTF-8"?>
     <Report Major="1" Minor="0" Revision="1">
        <CoIDs>  ….
  

代码片段:

function parse(txt) {
  var document = XmlService.parse(txt);
  var root = document.getRootElement();
  //...
}

运行脚本时,我收到错误消息:Content is not allowed in prolog

XML 文件的格式有问题吗?如何使用Google Apps Script解析此文件?

更新

我设法通过打开文件并使用Apple TextEdit将其另存为UTF-8文档来解决此问题。在使用Google Apps Script读取之前,是否有任何"自动"(或基于代码)的方法将非UTF 8(大概UTF-16文档)转换为UTF-8

当您在驱动器中打开文件时,可以选择文件的字符集,我在Google工程师(Corey G)的帖子回答中找到了此信息,因此即使我没有对其进行测试,我认为他也是一个值得信赖的来源:-)。

帖子在这里,代码如下:

DocsList.getFileById(<some id>).getBlob().getDataAsString("UTF-16");// replace by the Charset you want... UFT-8 for example.

所以我想值得一试...让我们知道它是否解决了您的问题。

我也遇到了这个问题,我通过在编辑器中删除 BOM(字节顺序标记)来修复它。这为我解决了问题。我猜解析器将 BOM 视为内容或其他东西。

我遇到了同样的问题,我已经下载了记事本++并将编码配置为"以UTF-8编码"。您可以通过打开 xml 文件并选择编码选项卡 ->"以 UTF-8 编码"来找到它。

它将来对所有 xml 文件有效。

希望它能找到你。