Как мне проанализировать значение из <UserProfile> для следующих XML-данных на картинке. Я новичок в Java. Я написал этоJAVA

Программисты JAVA общаются здесь
Anonymous
Как мне проанализировать значение из <UserProfile> для следующих XML-данных на картинке. Я новичок в Java. Я написал это

Сообщение Anonymous »

Нажмите, чтобы выполнить анализ данных XML`

Код: Выделить всё

String tagName = "crminfo"; logger.info(xmlResponse); List parsedXmlData = DataParserUtil.parseXml(xmlResponse, tagName, fieldMapping); logger.info("parsedXmlData: " + parsedXmlData);

Код: Выделить всё

public static List parseXml(String xml, String tagName, FieldMapping fieldMapping) throws Exception {
if (StringUtils.isBlank(xml)) {
return new ArrayList();
}

// Remove BOM if present
if (xml.startsWith("\uFEFF")) {
xml = xml.substring(1);
}
// Remove ZWNBSP if present
xml = xml.replaceAll("\uFEFF", "");

DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(xml)));
NodeList nodeList = document.getElementsByTagName(tagName);
List xmlObjects = new ArrayList();

Map fieldMap = fieldMapping.getFieldMap();
for (int i = 0; i < nodeList.getLength(); i++) {
Element element = (Element) nodeList.item(i);
Map objectMap = new HashMap();

// Collect all attributes and their values
NamedNodeMap attributes = element.getAttributes();
for (int j = 0; j < attributes.getLength(); j++) {
Node attribute = attributes.item(j);
String keyName = attribute.getNodeName();
for (String jsonField : fieldMap.keySet()) {
String xmlField = fieldMap.get(jsonField);
if (StringUtils.equals(keyName, xmlField)) {
keyName = jsonField;
break;
}
}
String value = attribute.getNodeValue();
ValueConverter converter = fieldMapping.getConverter(keyName);
objectMap.put(keyName, converter != null ? converter.convert(value) : value);
}
xmlObjects.add(objectMap);
}

return xmlObjects;
}
Я ожидаю, что значения будут добавлены следующим образом:
parsedXmlData=[{firstName=Direct_Lens_01, middleInit=,lastName=automation_test, zipCode=, страна =CAN, businessUnit=,authorizedRepNo=, city=, afslNo=, CompanyName=, phone=12345678, }]
но я получаю ParsedXMLData=[{}]Нужны рекомендации по улучшению этого кода и получению значений
`

Подробнее здесь: https://stackoverflow.com/questions/790 ... ure-i-am-n

Вернуться в «JAVA»