<?xml version="1.0" encoding="utf-8"?> <process xmlns="http://jbpm.org/4.4/jpdl" key="payment" name="资金支付"> <start name="start1" g="265,50,48,48"> <transition name="to task1" to="填单" g="-53,-17"/> </start> <!-- candidate-users="1000201100000000036,1000201100000000034" --> <task name="填单" g="243,132,92,52" assignee="1000201100000000036"> <transition name="提交" to="exclusive1" g="-83,-17"/> </task> <decision name="exclusive1" g="266,208,48,48" expr="#{finance > 500 ? '大量资金' : '一般资金'}" > <transition name="一般资金" to="一般资金" g="-53,-17"/> <transition name="大量资金" to="大量资金" g="-53,-17"/> </decision> <task name="一般资金" g="153,290,92,52" assignee="1000201100000000034"> <transition name="通过" to="end1" g="-47,-17"/> </task> <task name="大量资金" g="332,288,92,52" assignee="1000201100000000033"> <transition name="通过" to="end1" g="-47,-17"/> </task> <end name="end1" g="268,379,48,48"/> </process>
SAXReader saxReader = new SAXReader(); Document document; try { document = saxReader.read(new File(path + processKey)); Map<String, String> nameSpaceMap = new HashMap<String, String>(); nameSpaceMap.put("jbpm", "http://jbpm.org/4.4/jpdl"); //设置命名空间 saxReader.getDocumentFactory().setXPathNamespaceURIs(nameSpaceMap); //使用xpath找节点的时候前面加 jbpm: 就可以找到。 Element eleTask = (Element) document.selectSingleNode("/process/jbpm:decision[@name='" + nodeName + "']"); OutputFormat format = new OutputFormat("", false, "utf-8"); // 设置输出格式为空两格,换行,编码为utf-8 XMLWriter writer = new XMLWriter(new FileOutputStream(path +processKey), format); // 创建输出对象 writer.write(document); writer.close(); } catch (DocumentException e1) { e1.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }