Dom4j操作XML文件
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文件的更多相关文章
- 用dom4j操作xml文件
XML的全称是eXtensible Markup Language,即“可扩展标记语言”.XML文件的作用主要是数据存储,文件配置,数据传输. html与xml的区别是:①html语法松散,xml语法 ...
- 使用dom4j对xml文件进行增删改查
1.使用dom4j技术对dom_demo.xml进行增删改查 首选要下载dom4j的jar包 在官网上找不到,网上搜索了一下在这个链接:http://sourceforge.net/projects/ ...
- 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】
一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...
- Java操作XML文件 dom4j 篇
在项目中,我们很多都用到了xml文件,无论是参数配置还是与其它系统的数据交互.今天就来讲一下Java 中使用dom4j来操作XML文件. 我们需要引入的包: //文件包 import java.io. ...
- Java使用DOM4J对XML文件进行增删改查操作
Java进行XML文件操作,代码如下: package com.founder.mrp.util; import java.io.File; import java.util.ArrayList; i ...
- 用dom4j解析xml文件并执行增删改查操作
转自:https://www.aliyun.com/jiaocheng/1339446.html xml文件: <?xml version="1.0" encoding=&q ...
- 【dom4j xml】使用dom4j处理XML文件--测试过程遇到的问题
首先 关于dom4j的API,有如下: 当然 其中的实体引用有以下: 测试使用环境: 使用Maven搭建web环境,pom.xml文件配置如下: <project xmlns="ht ...
- 使用dom4j 读取XML文件
第一次接触dom4j的时候,感觉这个东西很神秘,因为之前虽然知道XML文件吧,但从来没有用过,一直感觉XML肯定不好操作.当得知,dom4j可以很容易的操作读取XML文件时,不免有些好奇,那么,用do ...
- dom4j操作xml文档
java Dom4j解析XML文件 标签(空格分隔):java进阶 xml文档: <?xml version="1.0" encoding="UTF-8" ...
随机推荐
- linux 使用fdisk分区扩容
标签:fdisk分区 概述 我们管理的服务器可能会随着业务量的不断增长造成磁盘空间不足的情况,在这个时候我们就需要增加磁盘空间,本章主要介绍如何使用fdisk分区工具创建磁盘分区和挂载分区,介绍两种情 ...
- Linux study
在centos5.5中编译LNMP环境 一.配置好ip, dns, 网关, 确保使用远程连接工具能够连接服务器 centos设置ip地址,网关, dns教程: http://www.osyumwei. ...
- SQL注入
@org.junit.Test public void testLogin() { CardDAO cd=new CardDAO(); if(cd.dengru("' or 1 = 1--& ...
- Javascript算法系列之快速排序(Quicksort)
原文出自: http://www.nczonline.net/blog/2012/11/27/computer-science-in-javascript-quicksort/ https://gis ...
- PDMS RvmTranslator
PDMS RvmTranslator eryar@163.com Abstract. AVEVA Review is used for 3D model visualisation for plant ...
- android ANR产生原因和解决办法
转自http://blog.sina.com.cn/s/blog_618199e60101kvbl.html ANR (Application Not Responding) ANR定义:在Andro ...
- android表白app
一.前言 马上就要520和521了,是不是还有像我一样的单身狗啊.我就知道有,所以这两天简单写了这个小程序(其实是替别人写的),虽然我并不会用去骗女孩子(因为最近太忙了,实习完之后要搞毕设,要搞论文啊 ...
- Web APi之异常处理(Exception)以及日志记录(NLog)(十六)
前言 上一篇文章我们介绍了关于日志记录用的是Log4net,确实也很挺强大,但是别忘了我们.NET有专属于我们的日志框架,那就是NLog,相对于Log4net而言,NLog可以说也是一个很好的记录日志 ...
- EntityFramework之原始查询如何查询未映射的值,你又知道多少?
前言 今天又倒腾了下EF,如题所示,遇到了一些问题,并最终通过尝试找到了解决方案,可能不是最终的解决方案,若你有更好的解决方案,望告知,同时通过阅读此文,定让你收获不少. 引入 当我们查询时一直是中规 ...
- 使用纯前端JavaScript 实现Excel IO
公司最近要为某国企做一个**统计和管理系统, 具体要求包含 Excel导入导出 根据导入的数据进行展示报表 图表展示(包括柱状图,折线图,饼图),而且还要求要有动画效果,扁平化风格 Excel导出,并 ...