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

时间:2013-11-03 18:14:36

标签: javascript xml google-apps-script google-sheets

我正在尝试使用Google Apps脚本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脚本解析此文件?

更新

我设法通过打开文件并将其再次保存为带有Apple TextEdit的UTF-8文档来解决问题。在使用Google Apps脚本阅读之前,是否有任何“自动”(或基于代码)方式将非UTF 8(可能是UTF-16文档)转换为UTF-8

3 个答案:

答案 0 :(得分:5)

当您在驱动器中打开文件时,可以选择文件的字符集,我在Google工程师(Corey G)的回复中找到了这些信息,所以即使我没有测试它,我认为他是一个信任的来源:-)。

帖子为here,代码如下:

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

所以我觉得值得尝试...... 如果它能解决您的问题,请告诉我们。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

我遇到了同样的问题,我已经下载了Notepad ++,并将编码配置为以UTF-8编码&#39;编码。您可以通过打开xml文件并选择“编码”选项卡 - &gt;来找到它。 &#39;编码为UTF-8&#39;。

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

希望它能找到你。