掌握Power Automate解析XML的关键步骤:先确保XML格式正确,使用“Parse XML”操作转换字符串为对象,再通过动态表达式或XPath风格语法提取节点值,配合Apply to each遍历列表,注意处理命名空间、单节点数组兼容性及特殊字符转义问题。

Power Automate 解析 XML 数据其实并不复杂,只要掌握几个关键步骤和函数,就能在自动化流程中高效处理 XML 内容。无论是从 API 返回的数据、文件读取的配置信息,还是系统间传输的消息,XML 都是常见的数据格式。下面介绍如何在 Power Automate 中解析并提取 XML 中的值。
确保 XML 格式正确
在开始解析前,必须确保输入的 XML 是格式良好的(Well-Formed)。Power Automate 的 XML 解析功能依赖于标准结构,如果缺少闭合标签或存在语法错误,流程会报错。
你可以使用以下方法验证:
- 用 Compose 操作先输出原始 XML 字符串
- 借助在线工具(如 XML Validator)检查结构
- 确保根元素唯一,所有标签正确嵌套
使用 "Parse XML" 操作解析内容
Power Automate 提供了专门的 Parse XML 操作,用于将 XML 字符串转换为可遍历的对象。
操作步骤如下:
- 在流程中添加 “Parse XML” 操作
- 在 Content 输入框中传入 XML 字符串(可来自上一步的输出)
- 系统会自动识别结构,生成可展开的树形节点
例如,有如下 XML:
Power Automate 实战 张三 XML 处理指南 李四
经过 Parse XML 后,你可以在后续步骤中通过动态内容选择器访问 book 节点列表。
提取 XML 中的具体值
解析完成后,常用 XPath 表达式 或 Power Automate 动态表达式 提取数据。
虽然 Power Automate 原生不支持完整 XPath,但可以通过以下方式实现提取:
- 使用 Outputs('Parse_XML')?['books']?['book'] 获取所有 book 节点(返回数组)
- 配合 Apply to each 循环遍历每个 book
- 在循环内用 item()?['title'] 和 item()?['author'] 获取字段值
若需提取属性(如 id),使用:item()?['@{id}']
常见问题与处理技巧
实际使用中可能会遇到一些典型问题:
- XML 包含命名空间:建议在解析前用字符串替换移除 xmlns 属性,或使用纯文本处理方式
-
单节点时返回对象而非数组:可在表达式中用
coalesce()统一处理,例如:coalesce(body('Parse_XML')?['books']?['book'], createArray()) - 特殊字符转义:确保 XML 中的 &, 等已正确编码
基本上就这些。只要 XML 结构清晰,配合 Parse XML 和 Apply to each,就能轻松提取所需数据。对于复杂场景,也可以结合 Azure Functions 或自定义连接器增强处理能力。










