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」或条件判断等支持表达式的动作中有效,且要求环境支持(部分云版流程已启用,政府云/本地网关可能受限)。
- 表达式示例(提取
中的 title 文本):Power BI xpath(xml(triggerBody()), 'string(/book/title)') - 必须先用
xml()将字符串转为 XML 对象,否则xpath()会失败 - 支持常见 XPath 语法:
//author、/catalog/book[1]/price、count(//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 替代










