Browse Source

fix:修改解析xml节点返回数据格式

xuezizhuo 1 year ago
parent
commit
ec5f4ed6ef

+ 12 - 5
zkqy-common/src/main/java/com/zkqy/common/utils/bpm/XmlDataParserUtils.java

@@ -9,7 +9,9 @@ import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 import java.io.StringWriter;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -160,7 +162,8 @@ public class XmlDataParserUtils {
      * @param xmlData xml内容
      * @return
      */
-    public static Map<String,Integer> getAllNodeKey(String xmlData){
+    public static Map<String,Object> getAllNodeKey(String xmlData){
+        Map<String,Object> resultMap = new HashMap<>();
         //将xml文件内容转成Document对象
         Document document= XmlUtil.parseXml(xmlData);
         //获得XML文档根节点
@@ -174,10 +177,14 @@ public class XmlDataParserUtils {
         String startNode = bpmnStartEvent.getAttribute("id");
         Map<String,Integer> map = new HashMap<>();
         map.put(startNode,0);
-        return recursiveParse(elementsByTagName, startNode,map);
+        List<String> list = new ArrayList<>();
+        list.add(startNode);
+        resultMap.put("nodeList",list);
+        resultMap.put("nodeMap",recursiveParse(elementsByTagName, startNode, map, list));
+        return resultMap;
     }
 
-    private static Map<String,Integer> recursiveParse(NodeList nodeList, String currentId ,Map<String,Integer> map) {
+    private static Map<String,Integer> recursiveParse(NodeList nodeList, String currentId ,Map<String,Integer> map, List<String> list) {
         for (int i = 0; i < nodeList.getLength(); i++) {
             Node node = nodeList.item(i);
             if (node.getNodeType() == Node.ELEMENT_NODE) {
@@ -185,9 +192,9 @@ public class XmlDataParserUtils {
                 String sourceRef = element.getAttribute("sourceRef");
                 String targetRef = element.getAttribute("targetRef");
                 if (sourceRef.equals(currentId)) {
-                    System.out.println("Current ID: " + currentId + ", Next ID: " + targetRef);
                     map.put(targetRef, map.size()+1);
-                    recursiveParse(nodeList, targetRef,map);
+                    list.add(targetRef);
+                    recursiveParse(nodeList, targetRef,map,list);
                     break;
                 }
             }