1. 创建并写入XML

    public static void writeXML(String filename){
try {
Document document = DocumentHelper.createDocument();
Element root = document.addElement("PortConfig");
Element ePort; ePort = root.addElement("Port");
ePort.addAttribute("Portname", "portBloodpress");
ePort.addAttribute("Portnumber", "COM12"); ePort = root.addElement("Port");
ePort.addAttribute("Portname", "portWah");
ePort.addAttribute("Portnumber", "COM14"); ePort = root.addElement("Port");
ePort.addAttribute("Portname", "portBloodsugar");
ePort.addAttribute("Portnumber", "COM16"); ePort = root.addElement("Port");
ePort.addAttribute("Portname", "portBloodfat");
ePort.addAttribute("Portnumber", "COM18"); ePort = root.addElement("Port");
ePort.addAttribute("Portname", "portUric");
ePort.addAttribute("Portnumber", "COM20"); OutputFormat format = new OutputFormat(" ", true);
XMLWriter output = new XMLWriter(new FileWriter(new File(filename)), format);
output.write(document);
output.close(); } catch (Exception e) {
e.printStackTrace();
}
}

首先用DocumentHelper创建一个Document对象,然后给Document添加一个Element,也就是根Element;然后可以在这个根Element下面添加若干个Element,每一个Element用addAttribute()添加了属性名称和属性值;最后,使用XMLWriter把Document写入文件。

2. 读取并解析XML

    public static void readXML(String filename){

        try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(filename);
// 获取根节点
Element portConfig = document.getRootElement();
for (Iterator i = portConfig.elementIterator(); i.hasNext();) {
Element port = (Element) i.next();
String aname = port.attributeValue("Portname");
String avalue = port.attributeValue("Portnumber");
if (aname.equals("portBloodpress")){
Constant.portBloodpress = avalue;
}
else if (aname.equals("portWah")){
Constant.portWah = avalue;
}
else if (aname.equals("portBloodsugar")){
Constant.portBloodsugar = avalue;
}
else if (aname.equals("portBloodfat")){
Constant.portBloodfat = avalue;
}
else if (aname.equals("portUric")){
Constant.portUric = avalue;
}
}
} catch (Exception e) {
e.printStackTrace();
} }

首先创建一个SAXReader,用这个SAXReader读出一个Document;然后获得这个Document的根Element,迭代获得根Element下面的每一个Element,对每一个Element,使用attributeValue()获得它的属性值。

3. 更新XML

    public static void updateXML(String filename){
try {
File f = new File(filename);
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(curDir + "\\port_config.xml");
// 获取根节点
Element portConfig = document.getRootElement();
for (Iterator i = portConfig.elementIterator(); i.hasNext();) {
Element port = (Element) i.next();
String aname = port.attributeValue("Portname");
if (aname.equals("portBloodpress")){
port.setAttributeValue("Portnumber", Constant.portBloodpress);
}
else if (aname.equals("portWah")){
port.setAttributeValue("Portnumber", Constant.portWah);
}
else if (aname.equals("portBloodsugar")){
port.setAttributeValue("Portnumber", Constant.portBloodsugar);
}
else if (aname.equals("portBloodfat")){
port.setAttributeValue("Portnumber", Constant.portBloodfat);
}
else if (aname.equals("portUric")){
port.setAttributeValue("Portnumber", Constant.portUric);
}
}
XMLWriter output = new XMLWriter(new FileWriter(new File(curDir + "\\port_config.xml")));
output.write(document);
output.close();
} catch (Exception e) {
e.printStackTrace();
}
}

更新和读取的过程差不多,只是对需要更新的属性用setAttributeValue()方法更新,最后再用XMLWriter写入文件。

XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<PortConfig>
<Port Portname="portBloodpress" Portnumber="COM126"/>
<Port Portname="portWah" Portnumber="COM146"/>
<Port Portname="portBloodsugar" Portnumber="COM166"/>
<Port Portname="portBloodfat" Portnumber="COM186"/>
<Port Portname="portUric" Portnumber="COM206"/>
</PortConfig>

Dom4j操作XML文件的更多相关文章

  1. 用dom4j操作xml文件

    XML的全称是eXtensible Markup Language,即“可扩展标记语言”.XML文件的作用主要是数据存储,文件配置,数据传输. html与xml的区别是:①html语法松散,xml语法 ...

  2. 使用dom4j对xml文件进行增删改查

    1.使用dom4j技术对dom_demo.xml进行增删改查 首选要下载dom4j的jar包 在官网上找不到,网上搜索了一下在这个链接:http://sourceforge.net/projects/ ...

  3. 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】

    一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...

  4. Java操作XML文件 dom4j 篇

    在项目中,我们很多都用到了xml文件,无论是参数配置还是与其它系统的数据交互.今天就来讲一下Java 中使用dom4j来操作XML文件. 我们需要引入的包: //文件包 import java.io. ...

  5. Java使用DOM4J对XML文件进行增删改查操作

    Java进行XML文件操作,代码如下: package com.founder.mrp.util; import java.io.File; import java.util.ArrayList; i ...

  6. 用dom4j解析xml文件并执行增删改查操作

    转自:https://www.aliyun.com/jiaocheng/1339446.html xml文件: <?xml version="1.0" encoding=&q ...

  7. 【dom4j xml】使用dom4j处理XML文件--测试过程遇到的问题

    首先 关于dom4j的API,有如下: 当然  其中的实体引用有以下: 测试使用环境: 使用Maven搭建web环境,pom.xml文件配置如下: <project xmlns="ht ...

  8. 使用dom4j 读取XML文件

    第一次接触dom4j的时候,感觉这个东西很神秘,因为之前虽然知道XML文件吧,但从来没有用过,一直感觉XML肯定不好操作.当得知,dom4j可以很容易的操作读取XML文件时,不免有些好奇,那么,用do ...

  9. dom4j操作xml文档

    java Dom4j解析XML文件 标签(空格分隔):java进阶 xml文档: <?xml version="1.0" encoding="UTF-8" ...

随机推荐

  1. 我为什么很烦在DB服务器上安装杀毒软件

    常见的数据库连接问题无外乎是在数据库服务器本地可以连接SQL Server,但通过其他服务器就不可以连接.但这次我却碰到了相反的情况,在服务器本地无法通过IP/实例名连接,但从其他服务器却可以.而且每 ...

  2. Android 透明度百分比对应的 十六进制

    Android 透明度百分比对应的 十六进制 先把结果放在这里,方便大家查询,也方便自己,UI太喜欢用百分比表示了=.=! 透明度百分比对应的十六进制: (说明:百分比计算出来会有小数,按照常规的四舍 ...

  3. iOS-几大框架的介绍

    1.Objective-C之Foundation框架 概述 我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objectiv ...

  4. WCF学习之旅——第一个WCF示例(三)

    第五步:创建客户端 WCF应用服务被成功寄宿后,WCF服务应用便开始了服务调用请求的监听工作.此外,服务寄宿将服务描述通过元数据的形式发布出来,相应的客户端就可以获取这些元数据.接下来我们来创建客户端 ...

  5. The transaction log for database 'tempdb' is full due to 'ACTIVE_TRANSACTION'

    今天早上,Dev跟我说,执行query statement时出现一个error,detail info是: “The transaction log for database 'tempdb' is ...

  6. 【已解决】WinPhone模拟器报错:模拟器没法确定来宾虚拟机通信的主机ID地址。某些功能已被禁用

    先看警告 再看错误信息 计算机管理打不开就==>Win+R ==>compmgmt.msc 发现,dnt在管理员权限组里面,也在Hyper-V权限组里面 看看Hyper-V的驱动有木有被禁 ...

  7. Cordova+Asp.net Mvc+GIS跨平台移动应用开发实战1-系统初步搭建(附演示,apk,全部源码)

    1.前言 身处在移动互联网的今天,移动应用开发炙手可热,身为程序猿的我们怎么能错过开发一款我们自己的APP.本人算是一个基于.net的GIS开发入门者(马上就大四啦), 暑假在学校参加GIS比赛有大把 ...

  8. ASP.NET:在一般处理程序中通过 Session 保存验证码却无法显示图片?

    using System.Drawing; using System.Web; using System.Web.SessionState; /// <summary> /// Captc ...

  9. 利用Dockerfile构建一个基于centos 7,包括java 8, tomcat 7,php ,mysql+mycat的镜像

    Dockerfile内容如下: FROM centos MAINTAINER Victor ivictor@foxmail.com WORKDIR /root RUN rm -f /etc/yum.r ...

  10. ASP.NET MVC Web API Post FromBody(Web API 如何正确 Post)

    问题场景: ASP.NET MVC Web API 定义 Post 方法,HttpClient 使用 JsonConvert.SerializeObject 传参进行调用,比如 Web Api 中定义 ...