将XML String转换为Map并使用Java获取键和值对

我有一个XML字符串。 我正在尝试将该字符串转换为映射,以便我可以获得键和值。 但是它无法转换。 这是我的代码

String xmlString = "  
" def convertStringToDocument = { xmlString -> DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; try { builder = factory.newDocumentBuilder(); org.w3c.dom.Document doc = builder.parse(new InputSource(new StringReader(xmlString))); return doc; } catch (Exception e) { e.printStackTrace(); } return null; } def populateDocProofsFromWaiversXML = { xmlString, mandateFlag -> final List documentProofs = new ArrayList(); if (xmlString != null) { try { HashMap values = new HashMap(); Document xml = convertStringToDocument(waiversList); org.w3c.dom.Node user = xml.getFirstChild(); NodeList childs = user.getChildNodes(); org.w3c.dom.Node child; for (int i = 0; i < childs.getLength(); i++) { child = childs.item(i); System.out.println(child.getNodeName()); System.out.println(child.getNodeValue()); values.put(child.getNodeName(), child.getNodeValue()); } } catch (Throwable t) { println "error" //LOG.error("Could not set document proofs from waivers ", t); } } return documentProofs; }

我想把“kyc”作为关键和相应的价值。 还有更好的想法?

 package com.test; import java.io.StringReader; import java.util.HashMap; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; public class Random { /** * @param args */ public static void main(String[] args) { HashMap values = new HashMap(); String xmlString = "123
test
asds
"; Document xml = convertStringToDocument(xmlString); Node user = xml.getFirstChild(); NodeList childs = user.getChildNodes(); Node child; for (int i = 0; i < childs.getLength(); i++) { child = childs.item(i); System.out.println(child.getNodeName()); System.out.println(child.getTextContent()); values.put(child.getNodeName(), child.getTextContent()); } } private static Document convertStringToDocument(String xmlStr) { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; try { builder = factory.newDocumentBuilder(); Document doc = builder.parse(new InputSource(new StringReader( xmlStr))); return doc; } catch (Exception e) { e.printStackTrace(); } return null; } }

这会奏效。 请检查:)你可以玩DOM。