Java使用dom4j修改xml文件

1、引入依赖
        <dependency>
            <scope>compile</scope>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>
2、代码示例
    @Test
    public void test01() throws DocumentException, IOException {

        // 读取xml文件
        Document doc=new SAXReader().read(new File("src/main/resources/br5221.xml"));

        // 获取根节点
        Element rootElement = doc.getRootElement();

        // 获取通讯码配置节点并修改其值
        Element stuElem= (Element)rootElement.elements("node").get(5);
        Element communicationcode = (Element) stuElem.elements("parameter").get(0);
        List<Attribute> listAttr=communicationcode.attributes();//当前节点的所有属性的list
        for(Attribute attr:listAttr){//遍历当前节点的所有属性
            String name=attr.getName();//属性名称
            String value=attr.getValue();//属性的值
            System.out.println("属性名称:"+name+"属性值:"+value);
            if (name.equals("value")) {
                attr.setValue("br5221");
            }
        }

        // 将结果保存
        FileOutputStream out =new FileOutputStream("src/main/resources/br5221res.xml");
        OutputFormat format= OutputFormat.createPrettyPrint();
        format.setEncoding("UTF-8");
        XMLWriter writer=new XMLWriter(out,format);
        writer.write(doc);
        writer.close();
    }
<?xml version="1.0" encoding="utf8"?>

<flow xmlns="http://www.sunline.cn/bpl" label="机构关系查询交易流程" author="" createDate="2017-8-17 11:35:55" md5="a86ec6d3256fe8b7803e2f6e8be73526f64bf1ec" modify_user="sunline" modify_Date="2020-3-31 19:07:36" enableLog="true" type="" template="RdpCoreFlowTemplateSys/template/oneformtrx.jstpt" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sunline.cn/bpl BPL.xsd">
  <description></description>
  <parameters/>
  <variables/>
  <routes>
    <route name="S" desc="成功" exception="false" dynamic="false"/>
    <route name="E" desc="异常" exception="true" dynamic="false"/>
  </routes>
  <node id="START0" xsi:type="START" label="开始0" enableLog="false" delable="true" editable="true">
    <sourceConnections>
      <sourceConnection id="lnk110" xsi:type="TRANSACTIONCONNECTION" sourceNode="START0" targetNode="INVOKEROUTE4" label="" routeName="S" routeIndex="1" default="TRUE" order="2147483647">
        <description></description>
        <point x="241" y="93"/>
        <point x="241" y="119"/>
        <point x="262" y="119"/>
        <point x="262" y="129"/>
        <condition>true</condition>
      </sourceConnection>
    </sourceConnections>
    <description>开始0</description>
    <rectangle x="188" y="55" width="150" height="38"/>
    <labelRectangle x="188" y="55" width="150" height="38"/>
    <logMessageBefore></logMessageBefore>
    <logMessageAfter></logMessageAfter>
  </node>
  <node id="INVOKEROUTE4" xsi:type="INVOKEROUTE" label="打开窗体" enableLog="false" delable="true" editable="true" class="RdpFlowComponentSys/component/platext/openForm/" method="openForm" desc="打开窗体" dynamic="true" isSystemApi="false" pilejscode="" stubconfig="" routeNode="">
    <sourceConnections>
      <sourceConnection id="lnk111" xsi:type="TRANSACTIONCONNECTION" sourceNode="INVOKEROUTE4" targetNode="INVOKEROUTE8" label="" routeName="S" routeIndex="1" default="TRUE" order="2147483647">
        <description></description>
        <point x="240" y="168"/>
        <point x="240" y="186"/>
        <point x="264" y="186"/>
        <point x="264" y="196"/>
        <condition>true</condition>
      </sourceConnection>
    </sourceConnections>
    <targetConnections>
      <tartetConnection type="TRANSACTIONCONNECTION">lnk110</tartetConnection>
    </targetConnections>
    <description>打开窗体</description>
    <rectangle x="187" y="130" width="150" height="38"/>
    <labelRectangle x="187" y="130" width="150" height="38"/>
    <logMessageBefore></logMessageBefore>
    <logMessageAfter></logMessageAfter>
    <parameter name="sFormId" type="String" primitiveType="FALSE" mode="IN" value="&quot;br5221In&quot;" defaultvalue="" dimension="0" desc="窗体名称" paratype="" busitype="formid" inputtype="" listid="" paravaltype="" paraFilePath="" interfacedata=""/>
    <parameter name="sInputType" type="String" primitiveType="FALSE" mode="IN" value="O" defaultvalue="" dimension="0" desc="窗体输入属性" paratype="string" busitype="context" inputtype="list" listid="inputtype" paravaltype="" paraFilePath="" interfacedata=""/>
    <parameter name="rData" type="String" primitiveType="FALSE" mode="IN" value="null" defaultvalue="" dimension="0" desc="窗体数据" paratype="" busitype="" inputtype="" listid="" paravaltype="" paraFilePath="" interfacedata=""/>
    <parameter name="returnValue" type="String" primitiveType="FALSE" mode="OUT" value="" defaultvalue="" dimension="0" desc="交易对象" paratype="" busitype="" inputtype="" listid="" paravaltype="" paraFilePath="" interfacedata=""/>
    <route name="S" desc="确定" exception="false" dynamic="false"/>
    <route name="E" desc="异常" exception="true" dynamic="false"/>
  </node>
  <node id="INVOKEROUTE6" xsi:type="INVOKEROUTE" label="显示成功信息" enableLog="false" delable="true" editable="true" class="" method="showSuccessMessage" desc="显示成功信息" dynamic="false" isSystemApi="false" pilejscode="" stubconfig="" routeNode="">
    <sourceConnections>
      <sourceConnection id="lnk112" xsi:type="TRANSACTIONCONNECTION" sourceNode="INVOKEROUTE6" targetNode="INVOKEROUTE7" label="" routeName="S" routeIndex="1" default="TRUE" order="2147483647">
        <description></description>
        <point x="0" y="0"/>
        <point x="100" y="100"/>
        <condition>true</condition>
      </sourceConnection>
    </sourceConnections>
    <targetConnections>
      <tartetConnection type="TRANSACTIONCONNECTION">lnk113</tartetConnection>
    </targetConnections>
    <description>显示成功信息</description>
    <rectangle x="185" y="270" width="150" height="38"/>
    <labelRectangle x="185" y="270" width="150" height="38"/>
    <logMessageBefore></logMessageBefore>
    <logMessageAfter></logMessageAfter>
    <parameter name="sMessage" type="String" primitiveType="FALSE" mode="IN" value="getLanguageInfo(&quot;ECD0088&quot;,&quot;交易处理成功&quot;)" defaultvalue="" dimension="0" desc="信息" paratype="" busitype="" inputtype="" listid="" paravaltype="" paraFilePath="" interfacedata=""/>
    <parameter name="bMask" type="String" primitiveType="FALSE" mode="IN" value="true" defaultvalue="true" dimension="0" desc="是否显示遮罩层" paratype="boolean" busitype="context" inputtype="list" listid="bTrueFalse" paravaltype="" paraFilePath="" interfacedata=""/>
    <route name="S" desc="确定" exception="false" dynamic="false"/>
    <route name="E" desc="异常" exception="true" dynamic="false"/>
  </node>
  <node id="INVOKEROUTE7" xsi:type="INVOKEROUTE" label="结束交易" enableLog="false" delable="true" editable="true" class="" method="submitTask" desc="结束交易" dynamic="false" isSystemApi="false" pilejscode="" stubconfig="" routeNode="">
    <sourceConnections>
      <sourceConnection id="lnk114" xsi:type="TRANSACTIONCONNECTION" sourceNode="INVOKEROUTE7" targetNode="END0" label="" routeName="S" routeIndex="1" default="TRUE" order="2147483647">
        <description></description>
        <point x="0" y="0"/>
        <point x="100" y="100"/>
        <condition>true</condition>
      </sourceConnection>
    </sourceConnections>
    <targetConnections>
      <tartetConnection type="TRANSACTIONCONNECTION">lnk112</tartetConnection>
    </targetConnections>
    <description>结束交易</description>
    <rectangle x="185" y="344" width="150" height="38"/>
    <labelRectangle x="185" y="344" width="150" height="38"/>
    <logMessageBefore></logMessageBefore>
    <logMessageAfter></logMessageAfter>
    <route name="S" desc="确定" exception="false" dynamic="false"/>
    <route name="E" desc="异常" exception="true" dynamic="false"/>
  </node>
  <node id="END0" xsi:type="END" label="" enableLog="false" delable="true" editable="true" autoRecall="true" routeName="S">
    <targetConnections>
      <tartetConnection type="TRANSACTIONCONNECTION">lnk114</tartetConnection>
    </targetConnections>
    <description>结束0</description>
    <rectangle x="249" y="424" width="32" height="32"/>
    <labelRectangle x="249" y="457" width="33" height="17"/>
    <logMessageBefore></logMessageBefore>
    <logMessageAfter></logMessageAfter>
  </node>
  <node id="INVOKEROUTE8" xsi:type="INVOKEROUTE" label="交易通讯" enableLog="false" delable="true" editable="true" class="RdpFlowComponentSys/component/platext/doConnect/" method="doConnect" desc="交易通讯" dynamic="false" isSystemApi="false" pilejscode="" stubconfig="" routeNode="">
    <sourceConnections>
      <sourceConnection id="lnk113" xsi:type="TRANSACTIONCONNECTION" sourceNode="INVOKEROUTE8" targetNode="INVOKEROUTE6" label="" routeName="S" routeIndex="1" default="TRUE" order="2147483647">
        <description></description>
        <point x="173" y="235"/>
        <point x="173" y="259"/>
        <point x="261" y="259"/>
        <point x="261" y="269"/>
        <condition>true</condition>
      </sourceConnection>
    </sourceConnections>
    <targetConnections>
      <tartetConnection type="TRANSACTIONCONNECTION">lnk111</tartetConnection>
    </targetConnections>
    <description>交易通讯</description>
    <rectangle x="120" y="197" width="290" height="38"/>
    <labelRectangle x="120" y="197" width="290" height="38"/>
    <logMessageBefore></logMessageBefore>
    <logMessageAfter></logMessageAfter>
    <parameter name="submitTaskId" type="String" primitiveType="FALSE" mode="IN" value="&quot;5221&quot;" defaultvalue="" dimension="0" desc="通讯码" paratype="" busitype="communicationcode" inputtype="" listid="" paravaltype="" paraFilePath="" interfacedata=""/>
    <parameter name="returnValue" type="String" primitiveType="FALSE" mode="OUT" value="" defaultvalue="" dimension="0" desc="交易对象" paratype="" busitype="" inputtype="" listid="" paravaltype="" paraFilePath="" interfacedata=""/>
    <route name="S" desc="成功" exception="false" dynamic="false"/>
    <route name="A" desc="授权" exception="false" dynamic="false"/>
    <route name="C" desc="收费" exception="false" dynamic="false"/>
    <route name="M" desc="提示信息" exception="false" dynamic="false"/>
    <route name="W" desc="警告信息" exception="false" dynamic="false"/>
    <route name="O" desc="其他错误" exception="false" dynamic="false"/>
    <route name="E" desc="异常" exception="true" dynamic="false"/>
  </node>
</flow>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值