【发布时间】:2022-02-17 20:39:41
【问题描述】:
如果 DTOSteps 节点包含 ID 属性,我将尝试删除它。
输入 XML:
<?xml version="1.0" encoding="UTF-8"?>
<DTOApplication id="Application-1660258480-1493174910" ApplicationNumber="AP-00006354">
<DTOLine id="Line-101746978-972142087" StatusCd="Active" >
<DTOCoverage id="Coverage-1713637162-341585712" CoverageCd="MINP" >
<DTOSteps>
<DTOStep Order="1" Name="Premium"/>
<DTOStep Order="2" Name="Term Factor">
<DTOSteps>
<DTOStep Order="1" Name="Minimum Premium" />
<DTOStep Order="2" Name="Rated Premium" />
</DTOSteps>
</DTOStep>
</DTOSteps>
</DTOCoverage>
<DTOCoverage id="Coverage-763105832-915106268" CoverageCd="TRIAL">
<DTOSteps id="Steps-Coverage-763105832-915106268">
<DTOStep id="Step-Coverage-763105832-915106268-Premium" Name="Premium" />
<DTOStep id="Step-Coverage-763105832-915106268-TermFactor" Name="Term Factor"/>
</DTOSteps>
</DTOCoverage>
</DTOLine>
<DTOCoverage id="Coverage-763105832-915106268" CoverageCd="EBRK" >
<DTOSteps id="Steps-Coverage-863105832-915106268">
<DTOStep id="Step-Coverage-863105832-915106268-Premium" Name="Base Rate"/>
<DTOStep id="Step-Coverage-863105832-915106268-TermFactor" Name="Term Factor"/>
</DTOSteps>
</DTOCoverage>
</DTOApplication>
我尝试了 dataweave 2.0,但它从输入 xml 中删除了所有 DTOSteps 节点。
我的数据编织代码:
%dw 2.0
output application/xml
fun FNtransformCoverage(x, index)=
x match {
case is Object -> x mapObject
if ($$ as String == "DTOCoverage" )
{
DTOCoverage @(( $$.@ )): $ - "DTOSteps"
}
else
(($$): FNtransformCoverage($, index+1))
else -> $
}
---
FNtransformCoverage(payload,1)
预期输出:https://github.com/Manikandan99/Map_request/blob/main/Transformed_output.xml
关于如何使用 dataweave 2.0删除包含 id 的 DTOSteps 有任何想法吗?
【问题讨论】:
-
脚本不大,不能添加到问题中。甚至输出也可能不会触发限制。
标签: mule dataweave mulesoft mule4