<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.3</version>
</dependency>
public static Map<String, Object> readXml(String xmlString) {
Map<String, Object> resMap = new HashMap<>(16);
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read(new StringReader(xmlString));
Element rootElement = document.getRootElement();
List<Element> elements = rootElement.elements();
for (Element element : elements) {
resMap.put(element.getName(), element.getTextTrim());
List<Element> child = element.elements();
if (!CollectionUtils.isEmpty(child)) {
List<Map<String, Object>> childList = new ArrayList<>();
for (Element elChild : child) {
List<Attribute> attributes = elChild.attributes();
Map<String, Object> childMap = new HashMap<>(16);
for (Attribute attribute : attributes) {
childMap.put(attribute.getName(), attribute.getValue());
}
childList.add(childMap);
}
resMap.put("childItem", childList);
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
return resMap;
}
public static String writeXml(RobotControlDTO robotControlDTO) {
Document document = DocumentHelper.createDocument();
Element rootElement = document.addElement("PatrolDevice");
Element sendCode = rootElement.addElement("SendCode");
sendCode.setText("192.168.2.99");
Element receiveCode = rootElement.addElement("ReceiveCode");
receiveCode.setText("192.168.1.15");
Element type = rootElement.addElement("Type");
type.setText(String.valueOf(robotControlDTO.getType()));
Element code = rootElement.addElement("Code");
code.setText("");
Element command = rootElement.addElement("Command");
command.setText(String.valueOf(robotControlDTO.getCommand()));
Element time = rootElement.addElement("Time");
time.setText(dtf.format(LocalDateTime.now()));
Element items = rootElement.addElement("Items");
Element item = items.addElement("Item");
item.addAttribute("value", robotControlDTO.getValue());
StringWriter stringWriter = new StringWriter(1024);
OutputFormat of = OutputFormat.createPrettyPrint();
of.setEncoding("UTF-8");
XMLWriter xmlWriter = new XMLWriter(stringWriter, of);
try {
xmlWriter.write(document);
return stringWriter.toString();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}