sectionTreatment.setSurgeryPerformedGrid(Lists.newArrayList());
//testing
if (elementNodeExist(element, "surgery-performed-grid")) {
NodeList childList = element.getElementsByTagName("surgery-performed-grid");
for(int i = 0; i < childList.getLength(); i++) {
OromaxSurgeryPerformedGrid surgeryPerformedGrid1 = new OromaxSurgeryPerformedGrid();
LOG.debug("childList.........." + childList);
surgeryPerformedGrid1.setSurgeryPerformedDate(getStringValForElementTag(element, "surgery-performed-date"));
surgeryPerformedGrid1.setSurgeryPerformedProcedureSpecify(getStringValForElementTag(element, "surgery-performed-procedure-specify"));
surgeryPerformedGrid1.setSurgeryPerformedProcedureCode(new ArrayList<>());
String surgeryPerformedCode = lookupMapperHelperService.getSurgeryPerformedCodeById(getIntValForElementTag(element, "surgery-performed-procedure"));
if(surgeryPerformedCode != null && Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedCode) != null) {
surgeryPerformedGrid1.getSurgeryPerformedProcedureCode().add( Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedCode));
}
String surgeryPerformedlv1 =lookupMapperHelperService.getSurgeryPerformedCodeById(getIntValForElementTag(element, "surgery-performed-procedure-detail-lvl1"));
if(surgeryPerformedlv1 != null && Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv1) != null) {
surgeryPerformedGrid1.getSurgeryPerformedProcedureCode().add(Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv1));
}
String surgeryPerformedlv2 = lookupMapperHelperService.getSurgeryPerformedCodeById(getIntValForElementTag(element, "surgery-performed-procedure-detail-lvl2"));
if(surgeryPerformedlv2 != null && Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv2) != null) {
surgeryPerformedGrid1.getSurgeryPerformedProcedureCode().add(Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv2));
}
surgeryPerformedGrid1.setSurgeryPerformedType(Pris3BMdmMapper.getSurgeryPerformedA(String.valueOf(lookupMapperHelperService.getOromaxLevelCodeById(getIntValForElementTag(element, "surgery-performed-type")))));
surgeryPerformedGrid1.setSurgeryPerformedSite(lookupMapperHelperService.getOromaxProcedureSiteCodeById(getIntValForElementTag(element, "surgery-performed-site")));
surgeryPerformedGrid1.setSurgeryPerformedLaterality(lookupMapperHelperService.getLateralityCodeById(getIntValForElementTag(element, "surgery-performed-laterality")));
surgeryPerformedGrid1.setSurgeryPerformedSiteOthers(getStringValForElementTag(element, "surgery-performed-site-others"));
sectionTreatment.getSurgeryPerformedGrid().add(surgeryPerformedGrid1);
}
我的代码应该读取并打印xml中的标签“ surgery-performed-grid”内的元素。但是我的输出将继续打印标记的第一个元素。我的输出:
"surgeryPerformedGrid": [{
"surgeryPerformedDate": "2018-09-11",
"surgeryPerformedProcedureCode": ["01"],
"surgeryPerformedSite": "02",
"surgeryPerformedSiteOthers": null,
"surgeryPerformedLaterality": null,
"surgeryPerformedType": null,
"surgeryPerformedProcedureSpecify": null
}, {
"surgeryPerformedDate": "2018-09-11",
"surgeryPerformedProcedureCode": ["01"],
"surgeryPerformedSite": "02",
"surgeryPerformedSiteOthers": null,
"surgeryPerformedLaterality": null,
"surgeryPerformedType": null,
"surgeryPerformedProcedureSpecify": null
此代码在ArrayList中保留添加相同的对象(surgeryPerformedGrid1)。如何在ArrayList中添加不同的对象(每个元素)?
sectionTreatment.getSurgeryPerformedGrid().add(surgeryPerformedGrid1);
谢谢。
答案 0 :(得分:0)
您需要在中使用父元素,因此您的代码应如下所示:
sectionTreatment.setSurgeryPerformedGrid(Lists.newArrayList());
//testing
if (elementNodeExist(element, "surgery-performed-grid")) {
NodeList childList = element.getElementsByTagName("surgery-performed-grid");
for(currentElement: childList) {
OromaxSurgeryPerformedGrid surgeryPerformedGrid1 = new OromaxSurgeryPerformedGrid();
LOG.debug("childList.........." + childList);
surgeryPerformedGrid1.setSurgeryPerformedDate(getStringValForcurrentElementTag(currentElement, "surgery-performed-date"));
surgeryPerformedGrid1.setSurgeryPerformedProcedureSpecify(getStringValForcurrentElementTag(currentElement, "surgery-performed-procedure-specify"));
surgeryPerformedGrid1.setSurgeryPerformedProcedureCode(new ArrayList<>());
String surgeryPerformedCode = lookupMapperHelperService.getSurgeryPerformedCodeById(getIntValForcurrentElementTag(currentElement, "surgery-performed-procedure"));
if(surgeryPerformedCode != null && Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedCode) != null) {
surgeryPerformedGrid1.getSurgeryPerformedProcedureCode().add( Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedCode));
}
String surgeryPerformedlv1 =lookupMapperHelperService.getSurgeryPerformedCodeById(getIntValForcurrentElementTag(currentElement, "surgery-performed-procedure-detail-lvl1"));
if(surgeryPerformedlv1 != null && Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv1) != null) {
surgeryPerformedGrid1.getSurgeryPerformedProcedureCode().add(Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv1));
}
String surgeryPerformedlv2 = lookupMapperHelperService.getSurgeryPerformedCodeById(getIntValForcurrentElementTag(currentElement, "surgery-performed-procedure-detail-lvl2"));
if(surgeryPerformedlv2 != null && Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv2) != null) {
surgeryPerformedGrid1.getSurgeryPerformedProcedureCode().add(Pris3BMdmMapper.getSurgeryPerformedA(surgeryPerformedlv2));
}
surgeryPerformedGrid1.setSurgeryPerformedType(Pris3BMdmMapper.getSurgeryPerformedA(String.valueOf(lookupMapperHelperService.getOromaxLevelCodeById(getIntValForcurrentElementTag(currentElement, "surgery-performed-type")))));
surgeryPerformedGrid1.setSurgeryPerformedSite(lookupMapperHelperService.getOromaxProcedureSiteCodeById(getIntValForcurrentElementTag(currentElement, "surgery-performed-site")));
surgeryPerformedGrid1.setSurgeryPerformedLaterality(lookupMapperHelperService.getLateralityCodeById(getIntValForcurrentElementTag(currentElement, "surgery-performed-laterality")));
surgeryPerformedGrid1.setSurgeryPerformedSiteOthers(getStringValForcurrentElementTag(currentElement, "surgery-performed-site-others"));
sectionTreatment.getSurgeryPerformedGrid().add(surgeryPerformedGrid1);
}