我可以在 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>
我正在使用逻辑应用程序将 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>