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

如何在Google Sheet中解析XML并提取ArXiv论文信息?

解决Google Sheet IMPORTXML解析ArXiv API XML返回空内容的问题

原因分析

ArXiv API返回的XML采用了Atom命名空间(http://www.w3.org/2005/Atom),IMPORTXML默认不识别该命名空间,直接使用常规XPath会无法匹配到目标节点,因此返回空内容。

解决方法

方法1:通过命名空间匹配编写XPath

无需显式声明命名空间前缀,直接用namespace-uri()和local-name()定位节点,对应公式如下:

  • 提取论文标题:
    =IMPORTXML("https://export.arxiv.org/api/query?id_list=2308.05734", "//*[namespace-uri()='http://www.w3.org/2005/Atom' and local-name()='title']")
    
  • 提取作者姓名:
    =IMPORTXML("https://export.arxiv.org/api/query?id_list=2308.05734", "//*[namespace-uri()='http://www.w3.org/2005/Atom' and local-name()='author']/*[local-name()='name']")
    
  • 提取发表日期:
    =IMPORTXML("https://export.arxiv.org/api/query?id_list=2308.05734", "//*[namespace-uri()='http://www.w3.org/2005/Atom' and local-name()='published']")
    

方法2:先获取原始内容再用正则提取

如果命名空间匹配仍有问题,可先用IMPORTXML("/")获取完整原始XML,再通过正则表达式提取目标字段:

  • 提取标题:
    =REGEXEXTRACT(IMPORTXML("https://export.arxiv.org/api/query?id_list=2308.05734", "/"), "<title>(.*?)</title>")
    
  • 提取作者(多作者可拆分):
    单作者提取:
    =REGEXEXTRACT(IMPORTXML("https://export.arxiv.org/api/query?id_list=2308.05734", "/"), "<name>(.*?)</name>")
    
    多作者拆分:
    =SPLIT(REGEXREPLACE(IMPORTXML("https://export.arxiv.org/api/query?id_list=2308.05734", "/"), ".*<name>(.*?)</name>.*", "$1"), ", ")
    
  • 提取发表日期:
    =REGEXEXTRACT(IMPORTXML("https://export.arxiv.org/api/query?id_list=2308.05734", "/"), "<published>(.*?)</published>")
    

注意事项

  • 确保Google Sheet具备正常网络权限,可访问ArXiv API地址。
  • 若API返回的XML格式发生变化,需对应调整XPath或正则表达式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 23:14:53