簡體   English   中英

如何比較兩個 Swift-MT 消息?

[英]How to Compare two Swift-MT message?

我有兩個 SWIFT 文件要比較,其中包含不同的 SWIFT 消息。 是否有任何庫可以比較 SWIFT 消息並顯示它們之間的確切區別?

我有如下兩條 SWIFT 消息:

{1:ABC}{2:DEF}{3:{108:valid}} 
{4::16R:GENL:20C::CORP//0000000519765434:20C::SEME//525200100000002:16S-} 
{1:ABC}{2:DEF}{3:{108:valid}} 
{4::16R:GENL:20C::CORP//0000000519765434:20C::SEME//528200100000009:16S-}

{1:ABC}{2:DEF}{3:{108:valid}} 
{4::16R:GENL:20C::CORP//0000000519765434:20C::SEME//610300100000001:16S-} 
{1:ABC}{2:DEF}{3:{108:valid}} 
{4::16R:GENL:20C::CORP//0000000519765434:20C::SEME//528200100000009:16S-}

我如何比較這兩個 SWIFT 報文?

編輯:我使用以下程序來比較記錄,但堅持比較值:

IConversionService ics = new ConversionService();
        SwiftMessage sm1 = ics.getMessageFromFIN(source);
        SwiftMessage sm2 = ics.getMessageFromFIN(target);

        SwiftBlock4 source_block4 = sm1.getBlock4();
        SwiftBlock4 target_block4 = sm2.getBlock4();

        List<SwiftTagListBlock> source_tagListBlock = source_block4.getSubBlocks("16R", "16S");
        List<SwiftTagListBlock> target_tagListBlock = target_block4.getSubBlocks("16R", "16S");

        //SetMultimap<String, String> source_multimap1 = HashMultimap.create();

        ListMultimap<String, String> source_multimap = ArrayListMultimap.create();
        ListMultimap<String, String> target_multimap = ArrayListMultimap.create();

        for (SwiftTagListBlock s : source_tagListBlock) {
            Iterator<Tag> sourcetag_iterator = s.tagIterator();

            while (sourcetag_iterator.hasNext()) {
                Tag tag = (Tag) sourcetag_iterator.next();
                source_multimap.put(tag.getName(), tag.getValue());
            }
        }
        for (SwiftTagListBlock t : target_tagListBlock) {
            Iterator<Tag> targettag_iterator = t.tagIterator();

            while (targettag_iterator.hasNext()) {
                Tag tag = (Tag) targettag_iterator.next();
                target_multimap.put(tag.getName(), tag.getValue());
            }
        }

現在多重映射具有鍵值對單鍵多值。 我想將記錄顯示為:

if(source_multimap.get(key).equals(target_multimap.get(key)))然后比較if(source_multimap.get(key).equals(target_multimap.get(key)))映射中的值並打印與if(source_multimap.get(key).equals(target_multimap.get(key)))映射不同的值。

您可以將 prowidesoftware 用於妻子解析器依賴項,並使用它您可以讀取所有 mt 消息塊和每個塊中的每個字段。您可以比較所有內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM