我可以在 Azure 逻辑应用程序中追加或操作 XML 吗?

Can I append or manipulate XML in Azure Logic App?

我正在使用逻辑应用程序将 JSON 文件转换为 XML。

转换后,我想操纵一些 XML 元素以包含某些文本。请参阅下面的代码示例。这有可能在逻辑应用程序内部实现吗?还是我需要在转换前操作 JSON?

预转换:

{
    "IDRecord": [
        {
            "EmployeeLastName": "Doe",
            "EmployeeFirstName": "John",
            "EmployeeUserid": "JD",
            "SomeField": "Test"
        }
    ]
}

转换后(根元素ID由转换函数创建):

<ID>
    <IDRecord>
        <EmployeeLastName>Doe</EmployeeLastName>
        <EmployeeFirstName>John</EmployeeFirstName>
        <EmployeeUserid>JD</EmployeeUserid>
        <SomeField>Test</SomeField>
    </IDRecord>
</ID>

我想达到的目标:

<ID xmlns="someUrl">
    <IDRecord xmlns="">
        <EmployeeLastName>Doe</EmployeeLastName>
        <EmployeeFirstName>John</EmployeeFirstName>
        <EmployeeUserid>JD</EmployeeUserid>
        <SomeField>Test</SomeField>
    </IDRecord>
</ID>

感谢任何帮助! 谢谢

您可以使用 XSLT 映射在 Azure 逻辑应用程序中进行 XML 转换。

恕我直言,无需为 <IDRecord> 元素指定空名称空间。

输入XML

<ID>
    <IDRecord>
        <EmployeeLastName>Doe</EmployeeLastName>
        <EmployeeFirstName>John</EmployeeFirstName>
        <EmployeeUserid>JD</EmployeeUserid>
        <SomeField>Test</SomeField>
    </IDRecord>
</ID>

XSLT 2.0

<?xml version="1.0"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" encoding="utf-8" indent="yes" omit-xml-declaration="yes"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="ID">
        <ID xmlns="someUrl">
            <xsl:apply-templates/>
        </ID>
    </xsl:template>

    <xsl:template match="IDRecord">
        <xsl:copy>
            <xsl:attribute name="xmlns" namespace=""/>
            <xsl:apply-templates/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

输出XML

<ID xmlns="someUrl">
  <IDRecord xmlns="">
    <EmployeeLastName>Doe</EmployeeLastName>
    <EmployeeFirstName>John</EmployeeFirstName>
    <EmployeeUserid>JD</EmployeeUserid>
    <SomeField>Test</SomeField>
  </IDRecord>
</ID>