使用dom4j读写xml实例
2016-03-17 21:51
316 查看
使用Dom4j开发,需下载dom4j相应的jar文件,本实例使用的是dom4j-1.6.1(最常用的版本)
官网下载: http://www.dom4j.org/dom4j-1.6.1/
1、把数据从xml文本中读取出来
实例代码如下:
public class ReaderTest {
@Test
public void readTest() throws Exception{
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("nbaStar.xml"));
//获取xml文本的根节点
Element root = document.getRootElement();
//获取xml文本中的内容,但不包括注释和文本的声明
String text = root.asXML();
System.out.println(text);
/*
* 常用读取信息的方法
*
* //获取xml绝对路径
* String xmlPath = document.getName();
* //获取xml的编码方式
* String encoding = document.getXMLEncoding();
*
* //获取根节点的名称
* String rootName = root.getName();
* //获取一个名称为player的节点,默认是自顶向下查找第一个player的节点
*
* Element e = root.element("player");
*
* //遍历各个子节点
* Iterator iterator = root.elementIterator();
* while(iterator.hasNext()){
* System.out.println(((Element)iterator.next()).asXML());
* }
* ...
*/
}
}
运行结果:
2、把数据写入xml文本中
实例代码如下:
运行结果:在项目的目录下生成一个nbaStar.xml的文本文件。内容如下:
官网下载: http://www.dom4j.org/dom4j-1.6.1/
1、把数据从xml文本中读取出来
实例代码如下:
public class ReaderTest {
@Test
public void readTest() throws Exception{
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("nbaStar.xml"));
//获取xml文本的根节点
Element root = document.getRootElement();
//获取xml文本中的内容,但不包括注释和文本的声明
String text = root.asXML();
System.out.println(text);
/*
* 常用读取信息的方法
*
* //获取xml绝对路径
* String xmlPath = document.getName();
* //获取xml的编码方式
* String encoding = document.getXMLEncoding();
*
* //获取根节点的名称
* String rootName = root.getName();
* //获取一个名称为player的节点,默认是自顶向下查找第一个player的节点
*
* Element e = root.element("player");
*
* //遍历各个子节点
* Iterator iterator = root.elementIterator();
* while(iterator.hasNext()){
* System.out.println(((Element)iterator.next()).asXML());
* }
* ...
*/
}
}
运行结果:
2、把数据写入xml文本中
实例代码如下:
public class WriterTest { @Test public void writerTest() throws IOException{ Document document = DocumentHelper.createDocument(); //设置xml文本的格式 document.setXMLEncoding("UTF-8"); Element root = document.addElement("description"); /* 这些命名空间添加后,后面子节点全部都会添加xmls... 没有去查找原因 * * root.addNamespace("", "http://www.nbaStar.com"); * */ NbaStars star[] = new NbaStars[5]; star[0] = new NbaStars(1, "KB", "Laker", "SG"); star[1] = new NbaStars(2, "KD", "OKC", "SF"); star[2] = new NbaStars(3, "Curry", "worriors", "PG"); star[3] = new NbaStars(4, "DW", "Heat", "SG"); star[4] = new NbaStars(5, "LBJ", "CAV", "SF"); for(int i = 0; i< star.length; i++){ NbaStars nbaStar = star[i]; Element e =root.addElement("player"); e.addAttribute("dateTime", ""+new Date()); e.addElement("id").addText(nbaStar.getId().toString()); e.addElement("name").addText(nbaStar.getName()); e.addElement("team").addText(nbaStar.getNbaTeam()); e.addElement("position").addText(nbaStar.getPosition()); } OutputFormat of = new OutputFormat(); //设置格式,编码... of.setEncoding("UTF-8"); of.setNewLineAfterDeclaration(false); // 去掉XML声明之后的空行 of.setNewlines(true); of.setIndent(true); of.setIndentSize(4); FileOutputStream fos = new FileOutputStream(new File("nbaStar.xml")); XMLWriter xmlWriter = new XMLWriter(fos, of); xmlWriter.write(document); xmlWriter.flush(); xmlWriter.close(); } }
运行结果:在项目的目录下生成一个nbaStar.xml的文本文件。内容如下:
<?xml version="1.0" encoding="UTF-8"?> <description xmlns="http://www.nbaStar.com"> <player xmlns="" dateTime="Thu Mar 17 21:44:10 CST 2016"> <id>1</id> <name>KB</name> <team>Laker</team> <position>SG</position> </player> <player xmlns="" dateTime="Thu Mar 17 21:44:10 CST 2016"> <id>2</id> <name>KD</name> <team>OKC</team> <position>SF</position> </player> <player xmlns="" dateTime="Thu Mar 17 21:44:10 CST 2016"> <id>3</id> <name>Curry</name> <team>worriors</team> <position>PG</position> </player> <player xmlns="" dateTime="Thu Mar 17 21:44:10 CST 2016"> <id>4</id> <name>DW</name> <team>Heat</team> <position>SG</position> </player> <player xmlns="" dateTime="Thu Mar 17 21:44:10 CST 2016"> <id>5</id> <name>LBJ</name> <team>CAV</team> <position>SF</position> </player> </description>
相关文章推荐
- MySQL 5.6 for Windows 解压缩版配置安装
- Qt输出日志文件
- iOS的单例模式
- kd树简介 在matlab下VLFeat中的kd-tree使用
- C++实验报告3
- MES案例研究3 – 质量门检查
- 脚本练习一:备份与删除
- struts2获得原始request、response、session的两种方法
- 当电商遇到SaaS 会有怎样的火花
- C_aop面向切面编程_s
- PAT (Advanced Level) Practise 1064 Complete Binary Search Tree (30)
- 后缀树的生成以及一些运用
- 解析XML文件步骤
- 蓝桥杯 历届试题 幸运数
- 构建之法阅读笔记02
- BZOJ 2435: [Noi2011]道路修建 dfs搜图
- IOS 推送-配置与代码编写
- 重构第7天 重命名(Rename )
- 配置adb
- ubuntu14.04在安装虚拟机VMware Tools-10.0时的编译问题