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

时间:2013-12-02 15:27:29

标签: 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>
      <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>

对于在标签内定义的节点,我想得到它在

下定义的坐标
<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));
            }
        }
    }
}

其中getElementsAttributes(获取特定节点的指定元素的所有属性)和getIds(获取指定节点的id)是我之前构建的两个方法,并且完全正常运行,但是我没有得到任何东西。输出......

0 个答案:

没有答案