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

如何从公开Google表格获取简化XML数据(Arduino+SIM800场景)

精简Google Sheets XML返回的实用方案

嘿,刚好我之前在项目里也遇到过用低带宽模块(比如SIM800)拉取Google Sheets数据时冗余XML太大的问题,给你两个高效的解决办法:

1. 切换到basic Feed类型

Google Sheets的Data API提供了不同的Feed类型,把你链接里的full替换成basic就能直接得到更精简的输出——它会自动去掉<link>、<category>这些完全无用的元素,同时减少重复的<title>/<content>内容。

修改后的请求链接示例:

https://spreadsheets.google.com/feeds/cells/1uphj-Oq3Xt6ImHJdezAUEX4u41_w1NNMlZU4Flr6lc4/1/public/basic?range=a11:c12

这个方案优点是简单,不需要额外参数,返回的XML体积会比full版本小很多,适合快速上手。

2. 用fields参数精准过滤所需元素

如果basic版本还是有你不需要的内容(比如残留的重复文本),可以用Google API支持的fields参数精准指定只返回你需要的节点,这是最彻底的精简方式,能把传输量降到最低。

你需要的是<updated>和<gs:cell>,所以构造的fields参数应该是:fields=feed(updated,entry(gs:cell)),把它加到原链接末尾即可:

https://spreadsheets.google.com/feeds/cells/1uphj-Oq3Xt6ImHJdezAUEX4u41_w1NNMlZU4Flr6lc4/1/public/full?range=a11:c12&fields=feed(updated,entry(gs:cell))

这个请求返回的XML会只保留根节点<feed>下的<updated>时间,以及每个单元格对应的<gs:cell>节点,完全去掉所有冗余内容,示例返回大概是这样:

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:gs="http://schemas.google.com/spreadsheets/2006">
  <updated>2024-05-20T12:34:56Z</updated>
  <entry>
    <gs:cell row="11" col="1" inputValue="你的单元格数据1"/>
  </entry>
  <entry>
    <gs:cell row="11" col="2" inputValue="你的单元格数据2"/>
  </entry>
  <!-- 其他目标单元格的entry -->
</feed>

小提示

如果SIM800发送请求时遇到参数解析问题,记得把fields里的特殊字符URL编码:

  • ( → %28
  • ) → %29
  • : → %3A
    编码后的fields参数就是:fields=feed%28updated%2Centry%28gs%3Acell%29%29

内容的提问来源于stack exchange,提问作者Rodrigo Miranda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:41:25