/** * */ package jframe.pay.domain.util; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import java.util.stream.Collectors; 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; /** * @author dzh * @date Oct 21, 2015 3:53:35 PM * @since 1.0 */ public class XmlUtil { public static Map<String, String> fromXml(String content) throws Exception { DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); domFactory.setNamespaceAware(true); DocumentBuilder builder = domFactory.newDocumentBuilder(); Document source = builder.parse(new ByteArrayInputStream(content.getBytes("UTF-8"))); NodeList nodeList = source.getDocumentElement().getChildNodes(); Map<String, String> map = new HashMap<>(); Node node = null; for (int i = 0; i < nodeList.getLength(); i++) { node = nodeList.item(i); map.put(node.getNodeName(), node.getTextContent()); } return map; } public static Map<String, String> fromXml(InputStream in) throws Exception { DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); domFactory.setNamespaceAware(true); DocumentBuilder builder = domFactory.newDocumentBuilder(); Document source = builder.parse(in); NodeList nodeList = source.getDocumentElement().getChildNodes(); Map<String, String> map = new HashMap<>(); Node node = null; for (int i = 0; i < nodeList.getLength(); i++) { node = nodeList.item(i); map.put(node.getNodeName(), node.getTextContent()); } return map; } public static String toXml(String root, Map<String, String> body) { if (body == null) return ""; return body.keySet().stream().map(key -> { return "<" + key + ">" + body.get(key) + "</" + key + ">"; }).collect(Collectors.joining("", "<" + root + ">", "</" + root + ">")); } }