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" ...
随机推荐
-
T-SQL 查询数据库中各个表的使用空间
1. 查询单表 EXEC sp_spaceused 'dbo.tablename' 2. 查询所有表 SELECT t.NAME AS TableName, s.Name AS SchemaName, ...
-
iOS进阶_FMDB的简单使用
先引入FMDB第三方,点击查看方法 一.创建表 1.创建sql语句 NSString *createSql = @"create table if not exists t_stude ...
-
iOS开发中的错误整理,百思项目&#39;我的&#39;模块,tableFooterViewHeight的问题.提醒自己对KVO和Block的运用欠缺
一.错误分析:由于tableFooterView中的数据是通过请求服务器后得到的,tableFooterViewHeight也是根据请求过来的数据经过布局子控件而计算出来的.(注意:计算高度是在子线程 ...
-
PHP如何获取文件行数
本文实例讲述了PHP获取文件行数的方法.分享给大家供大家参考.具体分析如下:提供两种实现方法,虽然第二种简单易懂,但是第一种效率最好第一种: <?php $file_path = 'xxx.tx ...
-
K3 WISE开发手册
1.VB插件工程的命名.命名空间和生成的DLL命名要一致,否则导致注册不成功!
-
java定时器的使用(Timer)
1.在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等. 对于这样的操作最方便.高效的实现方式就是使用java.util.Timer工具类. private java.util.Tim ...
-
[Unity3D]关于Assets资源目录结构管理
原地址:http://www.cnblogs.com/hisiqi/p/3203515.html 分享个我们项目常用的目录结构,微调过很多次,最终到了这个版本.个人认为这种管理资源方式是不错的.欢迎探 ...
-
D - K Smallest Sums(多路归并+贪心)
Problem K K Smallest Sums You're given k arrays, each array has k integers. There are kk ways to pic ...
-
8.20 usaco
summary:14 1.k短路 2.tarjan缩无向图点 3.复习了SA 4.差分约束 5.求第二短路 洛谷3824:dfs优化背包.开始的时候mle了,然后我就把a[i],w[i]去掉....就 ...
-
Linux 下 安装 Phalcon
先安装GIT 然后从 git://github.com/phalcon/cphalcon.git 这里下载安装文件 编译完成就可以安装了! 编译chmod -R 777 cphalcon1. 创建从C ...