我想通过传递文件名来检索字段值。为了实现我已经实现了一种方法,该方法遍历ISOMsg对象,然后如果找到与传递的文件名匹配的文件,则返回。我的要求是读取。 xml文件一次并使用一个静态映射,然后在下一次通过传递字段名称来检索对应的值,以实现此目的,这是一种在xml配置文件中检索所有字段的方法。
protected static void getISO8583ValueByFieldName(ISOMsg isoMsg, String fieldName) {
for (int i = 1; i <= isoMsg.getMaxField(); i++) {
if (isoMsg.hasField(i)) {
if (isoMsg.getPackager().getFieldDescription(isoMsg, i).equalsIgnoreCase(fieldName)) {
System.out.println(
" FOUND FIELD -" + i + " : " + isoMsg.getString(i) + " " + isoMsg.getPackager()
.getFieldDescription(isoMsg, i));
break;
}
}
}
}
最佳答案
您还可以使用映射到字段编号的字段名称定义枚举。
请注意,每个打包程序的字段名称可能有所不同,因此您的解决方案有点脆弱,最好使用枚举或仅使用常量。