You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets中IMPORTXML函数无法导入XML内容求助

解决Google Sheets IMPORTXML“导入内容为空”及XML解析错误

问题原因

你遇到的Content is not allowed in prolog错误,通常是因为XML文件开头存在**字节顺序标记(BOM)**或非XML前置内容,导致解析器无法识别合法的XML起始标签;IMPORTXML返回空则是因为Google Sheets无法正确解析带BOM的XML内容。

优先:公式解决方案

通过组合IMPORTDATA、REGEXREPLACE和FILTERXML绕过IMPORTXML的限制,直接处理并解析XML:

=FILTERXML(REGEXREPLACE(IMPORTDATA("https://www.dropbox.com/scl/fi/ozjw0tkjwais45f6do0ai/35240896382429000160550010004358881248052188.xml?rlkey=ddztt2vqxzr3ch1kwyk4enve5&st=k0ps6ehm&dl=1"), "^[\x00-\x1F\xEF\xBB\xBF]+", ""), "/nfeProc/@versao")
  • REGEXREPLACE负责移除XML开头的BOM和不可见控制字符,消除解析障碍
  • FILTERXML替代IMPORTXML,直接解析处理后的纯XML内容

备选:AppScript解决方案

如果公式仍失效,用AppScript手动处理:

  1. 打开Google Sheets,点击扩展程序 > Apps 脚本
  2. 替换默认代码为:
function getNFeVersion() {
  const url = "https://www.dropbox.com/scl/fi/ozjw0tkjwais45f6do0ai/35240896382429000160550010004358881248052188.xml?rlkey=ddztt2vqxzr3ch1kwyk4enve5&st=k0ps6ehm&dl=1";
  const response = UrlFetchApp.fetch(url);
  let content = response.getContentText();
  // 移除BOM及前置无效字符
  content = content.replace(/^[\x00-\x1F\xEF\xBB\xBF]+/, "");
  // 解析XML并提取版本号
  const xmlDoc = XmlService.parse(content);
  const version = xmlDoc.getRootElement().getAttribute("versao").getValue();
  // 将结果写入当前激活单元格
  const activeCell = SpreadsheetApp.getActiveSpreadsheet().getActiveCell();
  activeCell.setValue(version);
}
  1. 保存脚本并运行,授权后即可获取目标值

额外说明

  • 确认Dropbox链接的dl=1参数未被修改,该参数用于强制直接下载文件而非打开预览页
  • 若XML包含命名空间,需调整XPath语法,但从你的目标节点来看,大概率无需额外处理

内容的提问来源于stack exchange,提问作者Fernando F. Freire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 04:09:51