[英]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.