目前是有三个位置可以获取
本次使用hutool的XmlUtil工具类,使用Xpath表达式解析
Document document = XmlUtil.readXML(camundaSubStr);
NodeList value3 = XmlUtil.getNodeListByXPath("//*[name()='bpmn:userTask']", document);
for (int i = 0 ; i < value3.getLength() ; i ++){
System.out.println(value3.item(i).getNodeName()+"---"+value3.item(i).getAttributes().getNamedItem("id")+"---"+value3.item(i).getAttributes().getNamedItem("name"));
}
附加测试的xml内容:包含了自流程用户任务和自身的用户任务
String camundaSubStr = "<?xml version=\\\\"1.0\\\\" encoding=\\\\"UTF-8\\\\"?>\\\\n" +
"<bpmn:definitions xmlns:bpmn=\\\\"<http://www.omg.org/spec/BPMN/20100524/MODEL\\\\>" xmlns:bpmndi=\\\\"<http://www.omg.org/spec/BPMN/20100524/DI\\\\>" xmlns:dc=\\\\"<http://www.omg.org/spec/DD/20100524/DC\\\\>" xmlns:di=\\\\"<http://www.omg.org/spec/DD/20100524/DI\\\\>" xmlns:modeler=\\\\"<http://camunda.org/schema/modeler/1.0\\\\>" id=\\\\"Definitions_0wffco2\\\\" targetNamespace=\\\\"<http://bpmn.io/schema/bpmn\\\\>" exporter=\\\\"Camunda Modeler\\\\" exporterVersion=\\\\"4.12.0\\\\" modeler:executionPlatform=\\\\"Camunda Platform\\\\" modeler:executionPlatformVersion=\\\\"7.15.0\\\\">\\\\n" +
" <bpmn:process id=\\\\"Process_05xw307\\\\" isExecutable=\\\\"true\\\\">\\\\n" +
" <bpmn:startEvent id=\\\\"StartEvent_1\\\\">\\\\n" +
" <bpmn:outgoing>Flow_0rf0r4b</bpmn:outgoing>\\\\n" +
" </bpmn:startEvent>\\\\n" +
" <bpmn:sequenceFlow id=\\\\"Flow_0rf0r4b\\\\" sourceRef=\\\\"StartEvent_1\\\\" targetRef=\\\\"Activity_1hk94bh\\\\" />\\\\n" +
" <bpmn:userTask id=\\\\"Activity_1hk94bh\\\\" name=\\\\"test\\\\">\\\\n" +
" <bpmn:incoming>Flow_0rf0r4b</bpmn:incoming>\\\\n" +
" <bpmn:outgoing>Flow_1dffyci</bpmn:outgoing>\\\\n" +
" </bpmn:userTask>\\\\n" +
" <bpmn:sequenceFlow id=\\\\"Flow_1dffyci\\\\" sourceRef=\\\\"Activity_1hk94bh\\\\" targetRef=\\\\"bb\\\\" />\\\\n" +
" <bpmn:subProcess id=\\\\"Activity_0v9vkib\\\\">\\\\n" +
" <bpmn:incoming>Flow_0581fjr</bpmn:incoming>\\\\n" +
" <bpmn:startEvent id=\\\\"Event_0kuh5dk\\\\">\\\\n" +
" <bpmn:outgoing>Flow_1j7bsy6</bpmn:outgoing>\\\\n" +
" </bpmn:startEvent>\\\\n" +
" <bpmn:sequenceFlow id=\\\\"Flow_1j7bsy6\\\\" sourceRef=\\\\"Event_0kuh5dk\\\\" targetRef=\\\\"Activity_15c0dbw\\\\" />\\\\n" +
" <bpmn:userTask id=\\\\"Activity_15c0dbw\\\\" name=\\\\"cc\\\\">\\\\n" +
" <bpmn:incoming>Flow_1j7bsy6</bpmn:incoming>\\\\n" +
" <bpmn:outgoing>Flow_1qqzoi4</bpmn:outgoing>\\\\n" +
" </bpmn:userTask>\\\\n" +
" <bpmn:endEvent id=\\\\"Event_0ti975g\\\\">\\\\n" +
" <bpmn:incoming>Flow_1qqzoi4</bpmn:incoming>\\\\n" +
" </bpmn:endEvent>\\\\n" +
" <bpmn:sequenceFlow id=\\\\"Flow_1qqzoi4\\\\" sourceRef=\\\\"Activity_15c0dbw\\\\" targetRef=\\\\"Event_0ti975g\\\\" />\\\\n" +
" </bpmn:subProcess>\\\\n" +
" <bpmn:sequenceFlow id=\\\\"Flow_0581fjr\\\\" sourceRef=\\\\"bb\\\\" targetRef=\\\\"Activity_0v9vkib\\\\" />\\\\n" +
" <bpmn:userTask id=\\\\"bb\\\\" name=\\\\"bb\\\\">\\\\n" +
" <bpmn:incoming>Flow_1dffyci</bpmn:incoming>\\\\n" +
" <bpmn:outgoing>Flow_0581fjr</bpmn:outgoing>\\\\n" +
" </bpmn:userTask>\\\\n" +
" </bpmn:process>\\\\n" +
" <bpmndi:BPMNDiagram id=\\\\"BPMNDiagram_1\\\\">\\\\n" +
" <bpmndi:BPMNPlane id=\\\\"BPMNPlane_1\\\\" bpmnElement=\\\\"Process_05xw307\\\\">\\\\n" +
" <bpmndi:BPMNEdge id=\\\\"Flow_0rf0r4b_di\\\\" bpmnElement=\\\\"Flow_0rf0r4b\\\\">\\\\n" +
" <di:waypoint x=\\\\"215\\\\" y=\\\\"117\\\\" />\\\\n" +
" <di:waypoint x=\\\\"270\\\\" y=\\\\"117\\\\" />\\\\n" +
" </bpmndi:BPMNEdge>\\\\n" +
" <bpmndi:BPMNEdge id=\\\\"Flow_1dffyci_di\\\\" bpmnElement=\\\\"Flow_1dffyci\\\\">\\\\n" +
" <di:waypoint x=\\\\"370\\\\" y=\\\\"117\\\\" />\\\\n" +
" <di:waypoint x=\\\\"430\\\\" y=\\\\"117\\\\" />\\\\n" +
" </bpmndi:BPMNEdge>\\\\n" +
" <bpmndi:BPMNEdge id=\\\\"Flow_0581fjr_di\\\\" bpmnElement=\\\\"Flow_0581fjr\\\\">\\\\n" +
" <di:waypoint x=\\\\"530\\\\" y=\\\\"117\\\\" />\\\\n" +
" <di:waypoint x=\\\\"560\\\\" y=\\\\"117\\\\" />\\\\n" +
" </bpmndi:BPMNEdge>\\\\n" +
" <bpmndi:BPMNShape id=\\\\"_BPMNShape_StartEvent_2\\\\" bpmnElement=\\\\"StartEvent_1\\\\">\\\\n" +
" <dc:Bounds x=\\\\"179\\\\" y=\\\\"99\\\\" width=\\\\"36\\\\" height=\\\\"36\\\\" />\\\\n" +
" </bpmndi:BPMNShape>\\\\n" +
" <bpmndi:BPMNShape id=\\\\"Activity_0cpirn3_di\\\\" bpmnElement=\\\\"Activity_1hk94bh\\\\">\\\\n" +
" <dc:Bounds x=\\\\"270\\\\" y=\\\\"77\\\\" width=\\\\"100\\\\" height=\\\\"80\\\\" />\\\\n" +
" </bpmndi:BPMNShape>\\\\n" +
" <bpmndi:BPMNShape id=\\\\"Activity_14c6lk3_di\\\\" bpmnElement=\\\\"bb\\\\">\\\\n" +
" <dc:Bounds x=\\\\"430\\\\" y=\\\\"77\\\\" width=\\\\"100\\\\" height=\\\\"80\\\\" />\\\\n" +
" </bpmndi:BPMNShape>\\\\n" +
" <bpmndi:BPMNShape id=\\\\"Activity_0v9vkib_di\\\\" bpmnElement=\\\\"Activity_0v9vkib\\\\" isExpanded=\\\\"true\\\\">\\\\n" +
" <dc:Bounds x=\\\\"560\\\\" y=\\\\"50\\\\" width=\\\\"350\\\\" height=\\\\"200\\\\" />\\\\n" +
" </bpmndi:BPMNShape>\\\\n" +
" <bpmndi:BPMNEdge id=\\\\"Flow_1j7bsy6_di\\\\" bpmnElement=\\\\"Flow_1j7bsy6\\\\">\\\\n" +
" <di:waypoint x=\\\\"636\\\\" y=\\\\"150\\\\" />\\\\n" +
" <di:waypoint x=\\\\"690\\\\" y=\\\\"150\\\\" />\\\\n" +
" </bpmndi:BPMNEdge>\\\\n" +
" <bpmndi:BPMNEdge id=\\\\"Flow_1qqzoi4_di\\\\" bpmnElement=\\\\"Flow_1qqzoi4\\\\">\\\\n" +
" <di:waypoint x=\\\\"790\\\\" y=\\\\"150\\\\" />\\\\n" +
" <di:waypoint x=\\\\"852\\\\" y=\\\\"150\\\\" />\\\\n" +
" </bpmndi:BPMNEdge>\\\\n" +
" <bpmndi:BPMNShape id=\\\\"Event_0kuh5dk_di\\\\" bpmnElement=\\\\"Event_0kuh5dk\\\\">\\\\n" +
" <dc:Bounds x=\\\\"600\\\\" y=\\\\"132\\\\" width=\\\\"36\\\\" height=\\\\"36\\\\" />\\\\n" +
" </bpmndi:BPMNShape>\\\\n" +
" <bpmndi:BPMNShape id=\\\\"Activity_0jz8ou7_di\\\\" bpmnElement=\\\\"Activity_15c0dbw\\\\">\\\\n" +
" <dc:Bounds x=\\\\"690\\\\" y=\\\\"110\\\\" width=\\\\"100\\\\" height=\\\\"80\\\\" />\\\\n" +
" </bpmndi:BPMNShape>\\\\n" +
" <bpmndi:BPMNShape id=\\\\"Event_0ti975g_di\\\\" bpmnElement=\\\\"Event_0ti975g\\\\">\\\\n" +
" <dc:Bounds x=\\\\"852\\\\" y=\\\\"132\\\\" width=\\\\"36\\\\" height=\\\\"36\\\\" />\\\\n" +
" </bpmndi:BPMNShape>\\\\n" +
" </bpmndi:BPMNPlane>\\\\n" +
" </bpmndi:BPMNDiagram>\\\\n" +
"</bpmn:definitions>\\\\n";