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

如何在Logic Apps中基于子节点Code值为XML节点添加Description字段?

在Logic Apps中基于子子节点值更新XML节点的解决方案

针对你遇到的问题,这里提供两种可行的实现方式:

方法一:XML转JSON + 数组处理 + JSON转XML

这种方式借助Logic Apps的数组操作能力,绕开XML直接处理的限制:

  1. XML转JSON:使用Xml to Json动作将原XML转换为JSON格式,便于后续数组操作。
  2. 筛选目标节点:添加Filter Array动作,输入转换后JSON中的JournalCollection.Journal数组,筛选条件设为@equals(item()?['ChangeCode']?['Code'], 'b1'),确认能定位到目标Journal项。
  3. 初始化数组变量:创建一个类型为数组的变量,用于存储处理后的所有Journal节点数据。
  4. 遍历并处理每个节点:
    • 添加Apply to each循环,遍历原JSON的JournalCollection.Journal数组。
    • 在循环内添加Condition判断:@equals(item()?['ChangeCode']?['Code'], 'b1')。
      • 满足条件时:构造新对象,保留当前节点的所有原有属性,再添加Description字段(例如"New Description",如果原节点已有Description可直接复用)。
      • 不满足条件时:直接保留当前节点的原有数据。
    • 将处理后的节点添加到之前初始化的数组变量中。
  5. JSON转XML:构造包含根节点的JSON结构(示例:{"JournalCollection": {"Journal": 你的数组变量名}}),用Json to Xml动作转换回XML格式。

方法二:使用XSLT配合Transform XML组件

通过自定义XSLT模板,直接在XML层面完成条件判断和节点添加,无需格式转换:

  1. 编写XSLT模板:创建如下XSLT代码,实现匹配Code为b1的Journal节点并添加Description字段(如果该字段不存在):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>
    <!-- 处理根节点 -->
    <xsl:template match="/JournalCollection">
        <xsl:copy>
            <xsl:apply-templates select="Journal"/>
        </xsl:copy>
    </xsl:template>
    <!-- 处理Journal节点 -->
    <xsl:template match="Journal">
        <xsl:copy>
            <!-- 复制原有所有子节点 -->
            <xsl:apply-templates select="@*|node()"/>
            <!-- 当Code为b1且无Description时添加字段 -->
            <xsl:if test="ChangeCode/Code = 'b1' and not(Description)">
                <Description>Your Custom Description</Description>
            </xsl:if>
        </xsl:copy>
    </xsl:template>
    <!-- 默认模板:复制所有其他节点和属性 -->
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>
  1. 配置Transform XML组件:在Logic Apps中添加Transform XML动作,输入原XML数据,将上述XSLT代码作为转换模板,执行后即可得到处理后的XML。

两种方式对比:方法一无需掌握XSLT,用Logic Apps基础动作即可实现;方法二更高效,适合复杂XML场景,避免格式转换的额外开销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 10:27:51