Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取Java中的XML属性并生成JSON字符串?_Java_Xml_Json_Bpmn - Fatal编程技术网

获取Java中的XML属性并生成JSON字符串?

获取Java中的XML属性并生成JSON字符串?,java,xml,json,bpmn,Java,Xml,Json,Bpmn,我有以下XML代码: <?xml version="1.0" encoding="UTF-8"?> <bpmn2:definitions> <bpmn2:process> ... <bpmn2:userTask id="UserTask_1" name="User Task 1"> <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming> <bp

我有以下XML代码:

<?xml version="1.0" encoding="UTF-8"?>
<bpmn2:definitions>
<bpmn2:process>
  ...
    <bpmn2:userTask id="UserTask_1" name="User Task 1">
      <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
      <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
    </bpmn2:userTask>
    ...
    ...
    ...
  </bpmn2:process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_Process_1"bpmnElement="defaultPackage.NewProcess2">
      ...
      <bpmndi:BPMNShape id="BPMNShape_UserTask_1" bpmnElement="UserTask_1">
        <dc:Bounds height="50.0" width="110.0" x="165.0" y="205.0"/>
      </bpmndi:BPMNShape>
      ...
      ...
      ...
   </bpmndi:BPMNDiagram>
</bpmn2:definitions>

...
顺序流_1
序列流2
...
...
...
...
...
...
...
对于在标记中定义的节点,我想获取其坐标,该坐标在下定义

<bpmndi:BPMNShape id="BPMNShape_UserTask_1" bpmnElement="UserTask_1">
        <dc:Bounds height="50.0" width="110.0" x="165.0" y="205.0"/>
      </bpmndi:BPMNShape>

里面

我编写了以下代码:

ArrayList<String> bpmnElements = getElementAttributes("bpmndi:BPMNShape", "bpmnElement");
for (int j = 0; j < bpmnElements.size(); j++){
    String bpmnElement = bpmnElements.get(j);
    if(childnodelist.equals("bpmn2:task")){
        ArrayList<String> idTask = getIds("bpmn2:task");
        for(int l=0; l<idTask.size(); l++){
            if(idTask.get(l).equals(bpmnElement)) //becouse the id attribute of bpmn2:userTask is equal to    
                                                  // bpmnElement attribute of    bpmndi:BPMNShape node
            {
                ArrayList<String> Xs = getElementAttributes ("dc:Bounds" , "x");
                jw.key("x").value(Xs.get(j));
            }
        }
    }
}
ArrayList bpmnElements=getElementAttributes(“bpmndi:BPMNShape”、“bpmnElement”);
对于(int j=0;jfor(int l=0;l在没有看到完整代码和完整输入的情况下很难说。您是否尝试通过调试器运行代码段?这将帮助您找出没有输出的原因。我现在将尝试。您认为我使用的逻辑正确吗?“您认为我使用的逻辑正确吗?”–从这里也很难判断,因为除了这个小代码片段之外,我仍然不知道发生了什么……有没有办法只获取bpmn2:userTask节点的对应“x”属性?