|
@@ -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;
|
|
|
}
|
|
|
}
|