如何用Excel公式(FILTERXML)直接解析XML字符串

煙雲
发布: 2025-12-02 20:51:17
原创
920人浏览过
FILTERXML函数可解析XML数据,通过XPath提取指定节点内容。例如使用=FILTERXML(A1,"//name")可提取所有姓名;支持属性查询如"//book/@id",并能结合条件筛选如"//book[@category='小说']",但需确保XML格式正确且仅限Windows版Excel 2013及以上版本使用。

如何用excel公式(filterxml)直接解析xml字符串

Excel 的 FILTERXML 函数可以从结构化的 XML 字符串中提取特定节点的数据。这个函数结合了 XPath 查询语言,能精准定位你想要的内容。只要 XML 格式正确,不需要 VBA 或外部工具就能直接解析。

基本语法

FILTERXML(xml, xpath)

  • xml:有效的 XML 文本字符串
  • xpath:XPath 表达式,指定要提取的节点路径

简单示例:提取姓名列表

假设 A1 单元格包含以下 XML:

<users>
  <user><name>张三</name><age>28</age></user>
  <user><name>李四</name><age>32</age></user>
  <user><name>王五</name><age>25</age></user>
</users>
登录后复制

想提取所有 name 节点的值,使用公式:

=FILTERXML(A1,"//name")

结果会返回一个数组:张三; 李四; 王五(在 Excel 中按列显示)

使用属性和更精确路径

如果 XML 包含属性,比如:

无涯·问知
无涯·问知

无涯·问知,是一款基于星环大模型底座,结合个人知识库、企业知识库、法律法规、财经等多种知识源的企业级垂直领域问答产品

无涯·问知 153
查看详情 无涯·问知
<books>
  <book id="101" category="技术">Python入门</book>
  <book id="102" category="小说">三体</book>
</books>
登录后复制

提取书名:

=FILTERXML(A2,"//book")

提取 id 属性:

=FILTERXML(A2,"//book/@id")

提取 category 为“小说”的书名:

=FILTERXML(A2,"//book[@category='小说']")

注意事项与限制

  • FILTERXML 只能在 Windows 桌面版 Excel 2013 及以上版本使用(Mac 不支持)
  • XML 必须格式正确(闭合标签、正确嵌套)
  • 不支持命名空间(namespace)复杂的 XML
  • 返回结果是静态数组,不会自动扩展(除非使用动态数组功能)

基本上就这些。只要构造好 XML 和 XPath,FILTERXML 就能快速提取你需要的数据。不复杂但容易忽略细节,比如引号嵌套或路径写错。多试几次,熟悉常用 XPath 写法就好用了。

以上就是如何用Excel公式(FILTERXML)直接解析XML字符串的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号