Power Automate怎么解析XML内容 XPath函数

发布时间 - 2025-12-27 00:00:00    点击率:
Power Automate 中无法直接使用 XPath 函数解析 XML,推荐先用「XML」操作将 XML 转为 JSON 再解析;也可在 Compose 等支持表达式的动作中用 xpath(xml(), 'path') 提取,或结合 Parse JSON 进行强类型解析。

Power Automate 中不能直接使用 XPath 函数(如 xpath())解析 XML,因为原生的 XPath 支持在标准操作中已被移除或仅限特定连接器(如 SharePoint、SQL Server)。但你可以通过几种可靠方式实现 XML 解析,核心思路是:先将 XML 转为 JSON 或用表达式提取节点,再用 Power Automate 内置函数处理。

XML 操作转换为 JSON 后解析

这是最推荐、兼容性最好的方法。Power Automate 提供了「XML」操作(位于「数据操作」类别),可将 XML 字符串自动转为结构化 JSON,之后就能用 body()outputs()variables() 配合点号语法(如 item?.name)安全取值。

  • 确保输入是格式良好的 XML 字符串(含根节点,标签闭合,无非法字符)
  • 添加「XML」操作 → 输入 XML 内容(可来自变量、触发器输出或 compose)
  • 后续步骤中,用动态内容选择转换后的节点,或用表达式如:
    outputs('XML')?['root']?['items']?['item'][0]?['title']
  • 注意:数组需用索引或 apply to each;空值用 ? 安全导航避免报错

Compose + 表达式模拟简单 XPath 提取

对轻量级需求(如取某个固定路径的文本值),可用 xml() + xpath() 组合表达式——但仅在「Compose」或条件判断等支持表达式的动作中有效,且要求环境支持(部分云版流程已启用,政府云/本地网关可能受限)。

  • 表达式示例(提取 Power BI 中的 title 文本):
    xpath(xml(triggerBody()), 'string(/book/title)')
  • 必须先用 xml() 将字符串转为 XML 对象,否则 xpath() 会失败
  • 支持常见 XPath 语法://author/catalog/book[1]/pricecount(//book)
  • 返回结果是字符串,数值需用 int()float() 转换

Parse JSON 配合手动 Schema 精确解析

当 XML 结构稳定、字段明确时,先用「XML」操作转 JSON,再用「Parse JSON」动作定义 schema,能获得更强的类型提示和动态内容自动识别。

  • 运行一次 XML 转换动作,复制输出 JSON 示例
  • 在「Parse JSON」中粘贴该 JSON,点击「生成架构」自动生成 schema
  • 后续所有字段都可通过直观动态内容选取,无需写表达式
  • 适合多层嵌套、含属性(@attr)或混合文本+子节点的复杂 XML

注意事项与避坑提醒

实际使用中容易忽略这些细节,导致解析失败或取值为空:

  • XML 命名空间(xmlns)会让 xpath 失效,建议预处理:用 replace() 清除命名空间声明,或用 local-name() 匹配(如 xpath(xml(...), '//*[local-name()="title"]')
  • XML 中的属性需用 @name 语法,例如 /book/@id;文本内容用 text() 或省略(如 /book/title 默认取文本)
  • 触发器返回的 XML 若是 base64 编码(如 Outlook 附件),需先用 base64ToString() 解码
  • 大 XML(>5MB)可能超出行动限制,建议用 Azure Functions 或 Logic Apps 替代


# js  # json  # 编码  # app  # outlook  # sql  # 架构  # String  # Float  # count  # 命名空间  # xml  # 字符串  # int  # 对象  # sharepoint  # azure  # 先用  # 或用  # 需用  # 再用  # 这是  # 最好的  # 已被  # 可以通过  # 自动识别  # 可在 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用低价快速搭建高质量网站?  如何快速搭建高效香港服务器网站?  如何快速生成可下载的建站源码工具?  java获取注册ip实例  如何续费美橙建站之星域名及服务?  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  如何快速上传自定义模板至建站之星?  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  Laravel如何处理异常和错误?(Handler示例)  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  原生JS实现图片轮播切换效果  香港服务器如何优化才能显著提升网站加载速度?  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  Laravel如何生成API文档?(Swagger/OpenAPI教程)  如何用JavaScript实现文本编辑器_光标和选区怎么处理  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  青岛网站建设如何选择本地服务器?  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  如何选择PHP开源工具快速搭建网站?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  android nfc常用标签读取总结  如何在新浪SAE免费搭建个人博客?  Laravel如何实现一对一模型关联?(Eloquent示例)  LinuxShell函数封装方法_脚本复用设计思路【教程】  zabbix利用python脚本发送报警邮件的方法  Python3.6正式版新特性预览  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  Linux网络带宽限制_tc配置实践解析【教程】  如何在宝塔面板中修改默认建站目录?  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  百度浏览器如何管理插件 百度浏览器插件管理方法  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  零基础网站服务器架设实战:轻量应用与域名解析配置指南  利用 Google AI 进行 YouTube 视频 SEO 描述优化  IOS倒计时设置UIButton标题title的抖动问题  phpredis提高消息队列的实时性方法(推荐)  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  Laravel如何使用withoutEvents方法临时禁用模型事件  高端云建站费用究竟需要多少预算?  使用spring连接及操作mongodb3.0实例  深圳网站制作培训,深圳哪些招聘网站比较好?  WEB开发之注册页面验证码倒计时代码的实现  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  个人摄影网站制作流程,摄影爱好者都去什么网站?  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  详解Oracle修改字段类型方法总结