这是我最终需要的XML格式..
<cms:MessageHeader>
<cms:MessageType></cms:MessageType>
<cms:CreatedTimeStamp> </cms:CreatedTimeStamp>
<cms:MessageIdentification> </cms:MessageIdentification>
<cms:PhysicalSender> </cms:PhysicalSender>
<cms:PhysicalReceiver> </cms:PhysicalReceiver>
</cms:MessageHeader>
<cms:Process>
<cms:Role></cms:Role>
<cms:Processidentification></cms:Processidentification>
</cms:Process>
<cms:TransactionAcknowledgement>
<cms:TransactionIdentification></cms:TransactionIdentification>
<cms:OriginalTransactionIdentification></cms:OriginalTransactionIdentification>
<cms:TransactionAcceptance></cms:TransactionAcceptance>
<cms:ResponseCode></cms:ResponseCode>
<cms:TransactionAcceptance> </cms:TransactionAcceptance>
</cms:TransactionAcknowledgement>
{
"name": "Message",
"type": "MESSAGE",
"attributes": [{
"name": "ExternalMessageType",
"value": "Acknowledgement"
},
{
"name": "MessageTimestamp",
"value": "2017-02-10 11:35:07.595"
},
{
"name": "PhysicalSender",
"value": "8700000000001"
},
{
"name": "JuridicalSender",
"value": "8700000000001"
},
{
"name": "PhysicalReceiver",
"value": "8700000000002"
},
{
"name": "JuridicalReceiver",
"value": "8700000000002"
}],
"entities": [{
"name": "MessageHeader",
"type": "MESSAGE_HEADER",
"attributes": [{
"name": "InternalMessageType",
"value": "MPT.CRE"
},
{
"name": "InternalMessageID",
"value": "98b4c97d-9e49-43d0-a631-b7b43b195c18"
},
{
"name": "ConfigVersion",
"value": "2.1"
},
{
"name": "ProductVersion",
"value": "2.0"
},
{
"name": "ReceivedTimestamp",
"value": "2017-02-10 11:35:07.595"
},
{
"name": "PhysicalSenderID",
"value": "8700000000001"
},
{
"name": "JuridicalSenderID",
"value": "8700000000001"
},
{
"name": "PhysicalReceiverID",
"value": "8700000000001"
},
{
"name": "JuridicalReceiverID",
"value": "8700000000001"
},
{
"name": "TentantCode",
"value": "TWS"
},
{
"name": "OrganisationUserID",
"value": "ENDK_OrgUser1@cgi.com"
},
{
"name": "UserIdentityID",
"value": "f5c981ea-57d6-46d2-9b93-abfbf297b9b1"
},
{
"name": "Channel",
"value": "B2B"
},
{
"name": "IsSynchronous",
"value": false
}]
},
{
"name": "TRANSACTION",
"type": "TRANSACTION",
"attributes": [{
"name": "ExternalTransactionType",
"value": "AcknowledgmentSuccess"
},
{
"name": "ExternalTransactionID",
"value": "7a833e75-2e2d-4ab1-94d1-c844b8e6aa0b"
}],
"entities": [{
"name": "TransactionHeader",
"type": "TransactionHeader",
"attributes": [{
"name": "InternalTransactionType",
"value": "MHB.ACK.ACC"
}, {
"name": "InternalTransactionID",
"value": "8b4145dc-5c1a-4600-922e-cc90ea3a2a65"
}]
},
{
"name": "PAYLOAD",
"type": "PAYLOAD",
"entities": [{
"name": "AcceptTransaction",
"type": "ACCEPT_TRANSACTION",
"attributes": [{
"name": "OriginalExternalMessageID",
"value": "8b4145dc-5c1a-46ab-922e-cc90ea3a2a65"
},
{
"name": "OriginalExternalTransactionID",
"value": "8b4145dc-5c1a-46ba-922e-cc90ea3a2a65"
}]
},
{
"name": "Acceptance",
"type": "ACCEPTANCE",
"attributes": [{
"name": "SuccessCode",
"value": "SC.CPF.000"
}]
}]
}]
}]
}
答案 0 :(得分:0)
答案 1 :(得分:0)
一种方法是在XSLT 3.0中使用json-to-xml()函数(例如在Saxon 9.8中),然后将生成的XML转换为所需的格式。
的结果json-to-xml(unparsed-text('file:///.../test.json'))
输入开始
<map xmlns="http://www.w3.org/2005/xpath-functions">
<string key="name">Message</string>
<string key="type">MESSAGE</string>
<array key="attributes">
<map>
<string key="name">ExternalMessageType</string>
<string key="value">Acknowledgement</string>
</map>
<map>
<string key="name">MessageTimestamp</string>
<string key="value">2017-02-10 11:35:07.595</string>
</map>
<map>
<string key="name">PhysicalSender</string>
<string key="value">8700000000001</string>
</map>
您可以使用通用规则(例如
)对其进行转换<xsl:template match="fn:map[*[@key='name'][. castable as xs:NCName] and *[@key='value']">
<xsl:element name="{*[@key='name']}">{*[@key='value']}</xsl:element>
</xsl:template>
或使用更专业的规则,例如
<xsl:template match="fn:map[*[@key='name'][.='MessageTimeStamp']]">
<time value="{xs:dateTime(translate(*[@key='value'], ' ', 'T'))}"/>
</xsl:template>