<?xml version="1.0" encoding="UTF-8"?>

<Configuration>
<Config id="sysId">666</Config>
<Config id="sysName">en</Config>
</Configuration>
import com.google.common.base.MoreObjects;
import org.dom4j.*;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter; import java.io.*;
import java.util.List; /**
* Created by wfcfan on 2016/11/29.
*/
public class UserConfig implements Serializable { static private String CONFIG_XML_PATH = "D:\\data\\config.xml"; static private synchronized Document getConfigDocument() {
SAXReader reader = new SAXReader();
Document document = null;
try {
if (CONFIG_XML_PATH.startsWith("/")) {
document = reader.read(new File(CONFIG_XML_PATH));
} else {
document = reader.read(CONFIG_XML_PATH);
}
} catch (DocumentException e) {
e.printStackTrace();
}
return document;
} static public synchronized UserConfig getUserConfig() throws DocumentException { Element root = getConfigDocument().getRootElement(); List<Element> eles = root.elements();
UserConfig config = new UserConfig();
for (Element ele : eles) {
String idAttr = ele.attribute("id").getValue();
if (idAttr.equals("sysId")) {
config.setSysId(Integer.parseInt(ele.getTextTrim()));
} else if (idAttr.equals("sysName")) {
config.setSysName(ele.getTextTrim());
}
} return config;
} static public synchronized void setUserConfig(UserConfig config) {
Document doc = getConfigDocument();
Element root = doc.getRootElement(); List<Element> eles = root.elements();
for (Element ele : eles) {
String idAttr = ele.attribute("id").getValue();
if (idAttr.equals("sysId")) {
ele.setText(String.valueOf(config.getSysId()));
} else if (idAttr.equals("sysName")) {
ele.setText(config.getSysName());
}
} OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = null; try {
writer = new XMLWriter(new FileOutputStream(CONFIG_XML_PATH), format);
writer.write(doc);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} public UserConfig() { } public UserConfig(int id, String sysName) {
this.sysId = id;
this.sysName = sysName;
} private int sysId;
private String sysName; public int getSysId() {
return sysId;
} public void setSysId(int sysId) {
this.sysId = sysId;
} public String getSysName() {
return sysName;
} public void setSysName(String sysName) {
this.sysName = sysName;
} @Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("sysId", sysId)
.add("sysName", sysName)
.toString();
}
}

java dom4j 读写XML的更多相关文章

  1. Java DOM4J读取XML

    DOM4J是dom4j.org出品的一个开源XML解析包.Dom4j是一个易用的.开源的库,用于XML,XPath和XSLT.它应用于Java平台,採用了Java集合框架并全然支持DOM,SAX和JA ...

  2. dom4j读写XML文档

    dom4j 最常用最简单的用法(转) 要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/目前最新dom4j包下载地址:http:/ ...

  3. Dom4j下载及使用Dom4j读写XML简介

    sitinspring(如坐春风)原创,转载请注明作者及出处. 要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/目前最新dom4 ...

  4. Dom4j下载及使用Dom4j读写XML简介(转)

    Dom4j下载及使用Dom4j读写XML简介 要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/目前最新dom4j包下载地址:ht ...

  5. 【网络爬虫】【java】微博爬虫(四):数据处理——jsoup工具解析html、dom4j读写xml

    之前提到过,对于简单的网页结构解析,可以直接通过观察法.手工写正则解析,可以做出来,比如网易微博.但是对于结构稍微复杂点的,比如新浪微博,如果还用正则,用眼睛一个个去找,未免太麻烦了. 本文介绍两个工 ...

  6. 深入浅出Java Dom4j读取XML

    在以前自己使用的xml较少,只是了解其很强大,现在可算是在DRP中,真正的开始使用它了,以前只是简单的理解xml,xml即可扩展标记语言,简单的使用,具体是什么?怎么用?还是一直让自己期待的. 首先来 ...

  7. dom4j读写XML文件

    XML文件格式: <?xml version="1.0" encoding="UTF-8"?> <company> <employ ...

  8. java dom4j解析xml实例(2)

    java利用dom4j解析xml 需要的jar包: dom4j官方网站在 http://www.dom4j.org/ 下载dom4j-1.6.1.zip 解开后有两个包,仅操作XML文档的话把dom4 ...

  9. java dom4j解析xml实例

    java利用dom4j解析xml 需要的jar包: dom4j官方网站在 http://www.dom4j.org/ 下载dom4j-1.6.1.zip 解开后有两个包,仅操作XML文档的话把dom4 ...

随机推荐

  1. centos7安装个人博客wordpress

    第一步: 安装apache web 第二步: 安装MariaDB数据库 第三步: 安装PHP 第四步: 安装phpMyAdmin 第五部: 创建数据库: 第六部: 下载wordpress 第七部:复制 ...

  2. MS SQL Server查询 本日、本周、本月、本季度、本年起始时间

    参数声明 declare @beginTime datetime, --查询开始时间 @endTime datetime, --查询结束时间 @queryTimeType tinyint; --查询时 ...

  3. HDU多校Round 1

    Solved:5 rank:172 A.Maximum Multiple #include <stdio.h> #include <algorithm> #include &l ...

  4. 参考整理papers(一)

    https://blog.csdn.net/qq_14845119/article/details/82219246 整理了OCR的论文,可以参考一下.还有一些相关论文 论文(poster):Scen ...

  5. Python 爬虫爬取今日头条街拍上的图片

    # 今日头条--街拍 import requests from urllib.parse import urlencode import os from hashlib import md5 from ...

  6. 服务器的部署与Web项目的发布

    今天给老师的服务器部署项目,这次是第二次,基于第一次的经验,这次可以说是驾轻就熟. 服务器的系统是Windows Server 2008 R2 (64位) 需要安装的软件是:jdk7.TomCat7. ...

  7. Python学习:ModuleNotFoundError: No module named 'pygal.i18n' 的解决方法

    最近在学<Python编程:从入门到实践>,16.2小结中 from pygal.i18n import COUNTRIES 获取两个字母的国别码,我用的pygal的版本是2.4.0(终端 ...

  8. LES on Wind turbine

  9. c#读取.config文件内容

    今天在做项目的时候,由于程序同时启动多种情况的数据,测试分为多个人,就需要把数据分离开来,于是用了一个临时的配置文件,让测试在配置文件修改相应数据从而让各个测试互相不影响! 步骤: 第一步:添加一个A ...

  10. 【Codeforces 501C】Misha and Forest

    [链接] 我是链接,点我呀:) [题意] 给你一棵树 但是每个节点只告诉你出度个数 以及所有和它相连的点的异或和. 让你还原这棵树 [题解] 叶子节点的话,他所有节点的异或和就是它那唯一的一个爸爸 因 ...