上一篇文章我介绍了SAX方法解析XML文件的过程,这篇文章讲解的内容是利用DOM方法修改XML文件的节点内容。

      下面依然是首先贴出XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<EPClientDemo><WebService_IP>172.16.6.17</WebService_IP><WebService_PORT>8080</WebService_PORT><Dest>最高人民检查院 </Dest><RootPath_Receive>E:\rec</RootPath_Receive><Receiver>测试 </Receiver>
</EPClientDemo>

    我们可以看到这个文件非常简单,只有一个根节点,所以我在代码中就只是用到根节点,当然,如果遇到复杂的XML文件,解析方法是相同的,只需要指定某一层的父节点即可。

      好了,不多说废话了,直接贴出解析类,说明我在这里就不写了,代码中都有

package com.brucezhang.xmltest;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;public class MyDom_Update {/*** @param index   修改值的标签索引* @param count   修改的是第几个值* @param value   修改的目标值* @param outOrno 是否输出XML文件内容* * @author DLUTBruceZhang* */public void update(String index, int count, String value, boolean outOrno) {Document document = null;try {document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("my_xml.xml");Element root = document.getDocumentElement();root.getElementsByTagName(index).item(count).setTextContent(value);output(root, "my_xml.xml");if (outOrno) {System.out.println("-------------------------使用DOM方法输出-------------------------");output(root, null);}} catch (SAXException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ParserConfigurationException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//写回XML文件,保存修改或打印到控制台public static void output(Node node, String filename) {TransformerFactory transFactory = TransformerFactory.newInstance();try {Transformer transformer = transFactory.newTransformer();// 设置各种输出属性transformer.setOutputProperty("encoding", "gb2312");transformer.setOutputProperty("indent", "yes");DOMSource source = new DOMSource();// 将待转换输出节点赋值给DOM源模型的持有者(holder)source.setNode(node);StreamResult result = new StreamResult();if (filename == null) {// 设置标准输出流为transformer的底层输出目标result.setOutputStream(System.out);} else {result.setOutputStream(new FileOutputStream(filename));}// 执行转换从源模型到控制台输出流transformer.transform(source, result);} catch (TransformerConfigurationException e) {e.printStackTrace();} catch (TransformerException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();}}
}

    最后,我们需要测试这段代码能不能用,我们编写下主测试程序:

package com.brucezhang.xmltest;public class Main_Test {/*** @param args* Author:DLUTBruceZhang */public static void main(String[] args){// TODO Auto-generated method stub//修改XML文件
//      目标文件
//      <EPClientDemo>
//      <WebService_IP>201.55.46.79</WebService_IP>
//      <WebService_PORT>3389</WebService_PORT>
//      <Dest>DLUT</Dest>
//      <RootPath_Receive>F:\rec</RootPath_Receive>
//      <Receiver>研发 </Receiver>
//      </EPClientDemo>update();}public static void update(){MyDom_Update mUpdate = new MyDom_Update();System.out.println("\n\n尝试修改节点内容中。。。");mUpdate.update("WebService_IP", 0, "201.55.46.79", false);mUpdate.update("WebService_PORT", 0, "3389", false);mUpdate.update("Dest", 0, "DLUT", false);mUpdate.update("RootPath_Receive", 0, "F:\\rec", false);mUpdate.update("Receiver", 0, "研发", true);System.out.println("修改节点内容成功。。。");}
}

      最后,我们运行下,得到如下的结果:

尝试修改节点内容中。。。
-------------------------使用DOM方法输出-------------------------
<?xml version="1.0" encoding="GB2312"?>
<EPClientDemo><WebService_IP>201.55.46.79</WebService_IP><WebService_PORT>3389</WebService_PORT><Dest>DLUT</Dest><RootPath_Receive>F:\rec</RootPath_Receive><Receiver>研发</Receiver>
</EPClientDemo>
修改节点内容成功。。。

      OK,得到了我们想要的结果。


java操作xml文件--修改节点相关推荐

  1. JAVA操作xml文件

    参考:java操作xml方法,总有适合你的 XML技术在Java开发中的应用 1.简介 xml: extensible Markup Language 1.1使用场景: 不同的系统之间交互时使用xml ...

  2. Java操作XML文件及转义字符

    XML转义字符: eg: 实体必须以符号"&"开头,以符号";"结尾. 转载1: 目录 一.使用DOM4j进行XML的DOM解析 1.1.使用DOM4j ...

  3. Java 操作 xml 文件之写入

    对于 Java 对 xml 文件的读写,我在网上看了很多版本,结构差不多,根据自己的理解进行了一些总结. 写入数据到 xml 相对比较简单,我总结了以下两种写入方法,仅供参考! 1.dom4j 写入 ...

  4. java操作XML文件--读取内容

          先把问题贴出来:编写一个可以解析xml及修改xml内容的工具类       由于我以前做过Android应用程序开发,之前也解析过xml文件,所以,这道题不是很难,这篇文章我先解决第一个问 ...

  5. Java操作XML文件 dom4j 篇【转】

    加入包 1 //文件包 2 import java.io.ByteArrayOutputStream; 3 import java.io.File; 4 import java.io.FileWrit ...

  6. Java 操纵XML之修改XML文件

    Java 操纵XML之修改XML文件 一.JAVA DOM PARSER DOM interfaces The DOM defines several Java interfaces. Here ar ...

  7. python修改xml标签的值_对python修改xml文件的节点值方法详解

    这是我的xml文件结构 <?xml version='1.0' encoding='utf-8'?> JPEGImages train_2018-05-08_1000.jpg D:\all ...

  8. Qt操作XML文件(创建,读,写,修改,添加,删除)

    XML文件在项目开发的过程中经常用的,比如配置文件基本上都是XML格式的,本文介绍在Qt环境下操作XML文件,具体用法看代码 原txt文件内容,在 http://www1.jctrans.com/to ...

  9. XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML

    XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...

最新文章

  1. 如何使用MatPlotLib绘制出具有两个 Y 轴的曲线图?
  2. Linux常用基本命令(cut)
  3. Oracle rac进阶管理专家指导系列文档
  4. jni java共享变量_JNI/NDK开发指南(七)——C/C++访问Java实例变量和静态变量 .
  5. Java基础之static关键字的用法
  6. maven缺少jar包问题
  7. 搭建(增加) jenkins slave 机器
  8. python实现路由功能_python 实现重启路由器
  9. 资源放送丨《MySQL的查询与优化》PPT视频
  10. android onSaveInstance方法项目中的实践
  11. javascript中构造StringBuffer实例
  12. 微软力挺 Go,宣布参与 Athens 项目和 GopherSource
  13. 视频转换大师免费版|视频转换大师免费版下载 v9.3.6
  14. Bugku CTF 每日一题 想蹭网先解开密码
  15. HTML特殊符号表示方法
  16. cocos入门2:骨骼动画
  17. 关于编译报错“dereferencing pointer to incomplete type...
  18. java基于springboot+vue的企业员工人事工资薪酬管理系统 elementui
  19. 解决win10系统CPU占用过高【亲测非常有效】
  20. 【活动】Lava参加“星火燎原”矿业中国行活动

热门文章

  1. 抄2gua一篇文章提醒自己
  2. 解决eclipse编译的几种方法
  3. ShineTime - 带有 CSS3 闪亮特效的缩略图相册
  4. CentOS下查看已经登录用户并踢出的方法
  5. Spread for ASP.NET技术白皮书
  6. 【转载】Hadoop 2.7.3 和Hbase 1.2.4安装教程
  7. SharePoint Application Page启用匿名访问
  8. 全栈JVM框架Micronaut通向1.0版本之路
  9. Powershell Module for Netapp Data Ontap
  10. [Java] Web开发环境搭建 - MyEclipse 篇