From 76aa3a11d356817ce806d59c492ed8bafa3217bb Mon Sep 17 00:00:00 2001 From: Enrique Zamudio Date: Thu, 30 Apr 2015 12:34:23 -0500 Subject: [PATCH] parse only direct children of template #39 --- .../com/solab/iso8583/parse/ConfigParser.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/solab/iso8583/parse/ConfigParser.java b/src/main/java/com/solab/iso8583/parse/ConfigParser.java index 13221d5..7a1d9e9 100644 --- a/src/main/java/com/solab/iso8583/parse/ConfigParser.java +++ b/src/main/java/com/solab/iso8583/parse/ConfigParser.java @@ -178,15 +178,17 @@ public class ConfigParser { NodeList fields = elem.getElementsByTagName("field"); for (int j = 0; j < fields.getLength(); j++) { Element f = (Element)fields.item(j); - int num = Integer.parseInt(f.getAttribute("num")); - IsoType itype = IsoType.valueOf(f.getAttribute("type")); - int length = 0; - if (f.getAttribute("length").length() > 0) { - length = Integer.parseInt(f.getAttribute("length")); + if (f.getParentNode()==elem) { + int num = Integer.parseInt(f.getAttribute("num")); + IsoType itype = IsoType.valueOf(f.getAttribute("type")); + int length = 0; + if (f.getAttribute("length").length() > 0) { + length = Integer.parseInt(f.getAttribute("length")); + } + String v = f.getChildNodes().item(0).getNodeValue(); + CustomField _cf = mfact.getCustomField(num); + m.setValue(num, _cf == null ? v : _cf.decodeField(v), _cf, itype, length); } - String v = f.getChildNodes().item(0).getNodeValue(); - CustomField _cf = mfact.getCustomField(num); - m.setValue(num, _cf == null ? v : _cf.decodeField(v), _cf, itype, length); } mfact.addMessageTemplate(m); }