Ваш код почти готов. Требуется лишь несколько изменений.
NodeList nClientList = doc.getElementsByTagName("ClientInfo");
Этот код необходимо изменить. Вы ссылаетесь на прямой тег root на итерацию ClientInfo
, поэтому, какое бы условие вы ни выбрали, процесс итерации продолжается со всем тегом ClientInfo. Измените doc
на elem
NodeList nClientList = elem.getElementsByTagName("ClientInfo");
Затем заключите оставшуюся часть итерации в условный блок.
if (nEServiceId.equals("ESRVC2")) {
//ClientInfo iteration logic
}
Вот полный код этих изменений.
NodeList nEserviceInfoList = doc.getElementsByTagName("EServiceInfo");
for (int i = 0; i < nEserviceInfoList.getLength(); i++) {
Node nNode = nEserviceInfoList.item(i);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element elem = (Element) nNode;
Node node1 = elem.getElementsByTagName("EServiceId").item(0);
String nEServiceId = node1.getTextContent();
NodeList nClientList = elem.getElementsByTagName("ClientInfo");
if (nEServiceId.equals("ESRVC2")) {
System.out.println("EServiceId: " + nEServiceId);
for (int j = 0; j < nClientList.getLength(); j++) {
Node nClientNode = nClientList.item(j);
System.out.println("\nCurrent Element: " + nClientNode.getNodeName());
if (nClientNode.getNodeType() == Node.ELEMENT_NODE) {
Element elemClient = (Element) nClientNode;
Node node3 = elemClient.getElementsByTagName("ClientEntityID").item(0);
String nClientEntityID = node3.getTextContent();
Node node4 = elemClient.getElementsByTagName("ClientEntityType").item(0);
String nClientEntityType = node4.getTextContent();
System.out.println("ClientEntityID: " + nClientEntityID);
System.out.println("ClientEntityType: " + nClientEntityType);
}
}
}
}
}