【发布时间】:2018-01-26 11:02:25
【问题描述】:
我有一个谷歌脚本,它可以在服务器上找到一个特定的 .zip 文件夹,提取文件,然后处理一个特定的 .xml 文件。我的问题是将此文件转换为正确的格式。
代码的适用sn-p:
var dir = UrlFetchApp.fetch(url);
var b = dir.getBlob();
var files = Utilities.unzip(b);
var vesselDataBlob;
for (var i = 0; i < files.length; i++) {
if (files[i].getName().equals("dat/vesselDataMod.xml")) { //finds file with appropriate name
vesselDataBlob = files[i];
break;
}
}
var vesselData = vesselDataBlob.getDataAsString(); // Returns FULL document as a string.
var data = XmlService.parse(vesselData); // Throws error.
vesselData是xml格式,vesselData.getContentType()返回“text/xml”。
但是,我正在努力寻找解析数据的方法。 XmlService.parse(vesselData) 抛出错误:“prolog 中不允许内容。”我尝试使用 DOMParser,它也会引发错误。我设置代码的方式有问题吗?数据实际上不是xml格式的吗?
大多数人可能会做的事情与我的情况之间的明显区别在于,我是从压缩文件夹中提取文件,而不是直接从网站中提取文件。不是这个问题,我试过只用上传到云端硬盘的xml文件,还是出现了同样的问题。
我可以设置字符串操作来获取我需要的数据,但如果有人可以提供帮助,我宁愿不努力。谢谢!
我一直在使用这个 xml 的 sn-p 进行调试:
<?xml version="1.0" encoding="UTF-8"?>
<vessel_data version="2.1">
<hullRace ID="0" name="TNS" keys="player">
<taunt immunity="Yadayada" text="More yadayada"/>
</hullRace>
</vessel_data>
【问题讨论】:
标签: javascript xml google-apps-script xml-parsing