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

Power Automate中从无父节点多根XML提取姓名的XPATH问题

解决Power Automate中无父节点XML的Firstname/Lastname提取问题

问题背景

从SaaS API拉取的XML无顶层父节点,包含多个<Request>元素,需提取每个元素下的Firstname和Lastname同步到其他应用。尝试XPATH过滤器/*/Firstname|/*/Lastname、Firstname|Lastname均因XML格式不合法报错。

核心原因

Power Automate的XML处理组件要求输入合法XML文档,即必须包含且仅包含一个顶层根节点。当前XML是多个<Request>节点并列,不符合规范,导致XPATH解析失败。

解决方案步骤

1. 给XML添加根节点

用Power Automate的Compose动作,将原始XML包裹在自定义根节点(比如<Requests>)中,把非合法XML转为合法格式:

<Requests>@{outputs('API拉取XML的动作名称')}</Requests>

替换API拉取XML的动作名称为你实际调用API的动作名称。

2. 提取每个Request下的字段

有两种常用方式提取Firstname和Lastname:

方式一:XPATH遍历Request节点
  • 先获取所有<Request>节点:
    xpath(outputs('添加根节点的Compose'), '//Request')
    
  • 对每个节点(用Apply to each循环)提取字段:
    • Firstname:xpath(item(), 'string(./Firstname)')
    • Lastname:xpath(item(), 'string(./Lastname)')
方式二:用Select动作直接映射
  • 数据源选择添加根节点后的Compose输出
  • 在映射面板中设置:
    Firstname: xpath(item(), 'string(./Firstname)')
    Lastname: xpath(item(), 'string(./Lastname)')
    

修正后的合法XML示例

<Requests>
  <Request ID="19131795" Status="Approved">
    <TimeOffDate>2023-02-14</TimeOffDate>
    <TimeOffDayOfWeek>Tuesday</TimeOffDayOfWeek>
    <TimeStart></TimeStart>
    <TimeEnd></TimeEnd>
    <TimeOffHours>8.000</TimeOffHours>
    <TimeOffTypeName>Maternity Leave</TimeOffTypeName>
    <EmployeeID>646028926148N</EmployeeID>
    <LoginID>Marie</LoginID>
    <Firstname>Marie-Eve</Firstname>
    <Lastname>B</Lastname>
    <UserCategory>Software Development</UserCategory>
    <SubmittedDate>2022-03-11</SubmittedDate>
    <Deducted>Yes</Deducted>
    <Comment>time-off request created by administrator</Comment>
  </Request>
  <Request ID="21301056" Status="Approved">
    <TimeOffDate>2023-02-14</TimeOffDate>
    <TimeOffDayOfWeek>Tuesday</TimeOffDayOfWeek>
    <TimeStart>2023-02-14T13:00:00</TimeStart>
    <TimeEnd>2023-02-14T17:00:00</TimeEnd>
    <TimeOffHours>4.000</TimeOffHours>
    <TimeOffTypeName>Paid Time Off - Salary</TimeOffTypeName>
    <EmployeeID>FRM992097</EmployeeID>
    <LoginID>Robert</LoginID>
    <Firstname>Bobby</Firstname>
    <Lastname>D</Lastname>
    <UserCategory>Information Technology</UserCategory>
    <SubmittedDate>2023-01-06</SubmittedDate>
    <Deducted>Yes</Deducted>
    <Comment></Comment>
  </Request>
  <Request ID="21324804" Status="Approved">
    <TimeOffDate>2023-02-14</TimeOffDate>
    <TimeOffDayOfWeek>Tuesday</TimeOffDayOfWeek>
    <TimeStart></TimeStart>
    <TimeEnd></TimeEnd>
    <TimeOffHours>8.000</TimeOffHours>
    <TimeOffTypeName>NL Parental Leave 1</TimeOffTypeName>
    <EmployeeID></EmployeeID>
    <LoginID>Kamila</LoginID>
    <Firstname>Kamila</Firstname>
    <Lastname>K</Lastname>
    <UserCategory>NL Customer Service</UserCategory>
    <SubmittedDate>2023-01-09</SubmittedDate>
    <Deducted>Yes</Deducted>
    <Comment>time-off request created by administrator</Comment>
  </Request>
</Requests>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:20:54