读取带有命名空间的 XML 元素

问题描述 投票:0回答:1

我需要读取 XML 有效负载中的一些元素并将这些元素中的数据发送到第三方系统。为此,我需要首先检查元素的数据是否存在,然后能够读取实际数据,以便将其发送到其他系统。我在浏览/阅读 XML 标签时遇到困难。下面是我的示例 XML。我想读取 SSN、IDNumber 和 DriverNo。我尝试使用payload.session.data.account.SSN,但它似乎不起作用。

<ns0:session Destination="ALL" id="88888" ODSId="633d8812-b35b-4f12-8206-09f2d1a1455e" charge="-5941" count="1" dateStamp="2021-09-07T04:39:14" effectiveDate="2021-09-06" index="1" policyID="88888" sequence="3" transactionType="Cancel" transGroup="tE7E43B47B9234B15B5CE27444FA96909" transHistoryId="1051484" type="onset" OOSInsertIndex="1" finalReapplyCRPair="0" xmlns:ns0="http://Atlas.Schemas.Policy/1.0">
    <data id="d65845D5408974BC7BD8286A45AF48B9E" ODSId="633d8812-b35b-4f12-8206-09f2d1a1455e">
        <account id="a2F6F1D78A33C4C2CB980B68AE8349B19" ODSId="633d8812-b35b-4f12-8206-09f2d1a1455e">
            <SSN>123456789</SSN>
            <IDNumber>129</IDNumber>
            <name>testing</name>
            <driver change="0" written="0" id="d2788BE2CFE0E459DBDC221015A30A45C" deleted="0" ODSId="633d8812-b35b-4f12-8206-09f2d1a1455e">
                <DriverNo>0000000000000</DriverNo>
                <DriverLockedIndicator>0</DriverLockedIndicator>
            </driver>
        </account>
    </data>
</ns0:session>

读取数据后,我的示例输出为 JSON 格式。

{ 
  SSN: 123456789,
  IDNumber: 129,
  DriverNo: 0000000000000
}
mule dataweave mulesoft mule4 mule-esb
1个回答
0
投票
%dw 2.0
output application/json
ns ns0 http://Atlas.Schemas.Policy/1.0
---
{
    SSN: payload.ns0#session.data.account.SSN,
    IDNumber: payload.ns0#session.data.account.IDNumber,
    DriverNo: payload.ns0#session.data.account.driver.DriverNo
}
© www.soinside.com 2019 - 2024. All rights reserved.