2

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

<?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 脚本解析此文件?

更新

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

4

3 回答 3

6

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

帖子在这里,代码如下:

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

所以我想这值得一试......如果它解决了你的问题,请告诉我们。

于 2013-11-04T17:12:27.437 回答
1

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

于 2013-11-06T10:36:39.670 回答
0

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

以后对所有xml文件都有效。

希望它找到你。

于 2016-05-02T08:56:53.937 回答