- 浏览: 474551 次
- 性别:
- 来自: 武汉
最新评论
-
zyzyzy123:
请问有工程吗,我现在正在实现打电话的功能,但是一直不通,怀疑是 ...
实用的java 串口通信程序 -
wuhaitong:
引用[img][/img][*][url][/url] ...
jbpm -
迷糊_le:
maven命令, 蛮好的,谢谢
maven eclipse -
Wuaner:
不错的文章 , 谢谢分享!
Hadoop -
yuqihengsheng:
strong 很细
HighLighter
包括三个文件:studentInfo.xml(待解析的xml文件), Dom4jReadExmple.java(解析的主要类), TestDom4jReadExmple.java(测试解析的结果) (由于使用csdn blog自带的代码粘贴工具会朝里加入一些"..."字符,虽然利于查看,但是不利于把代码copy出来运行,而亲自运行代码对程序员来说是很重要的,故没有使用csdn blog自带的代码粘贴工具来插入代码,而是用着用直白的方式):
studentInfo.xml
<?xml version="1.0" encoding="gb2312"?>
<students>
<student age="25"><!--如果没有age属性,默认的为20-->
<name>崔卫兵</name>
<college>PC学院</college>
<telephone>62354666</telephone>
<notes>男,1982年生,硕士,现就读于北京邮电大学</notes>
</student>
<student>
<name>cwb</name>
<college leader="学院领导">PC学院</college><!--如果没有leader属性,默认的为leader-->
<telephone>62358888</telephone>
<notes>男,1987年生,硕士,现就读于中国农业大学</notes>
</student>
<student age="45">
<name>xxxxx</name>
<college leader="">xxx学院</college>
<telephone>66666666</telephone>
<notes>注视中,注释中</notes>
</student>
<student age="">
<name>lxx</name>
<college>yyyy学院</college>
<telephone>88888888</telephone>
<notes>注视中111,注释中222</notes>
</student>
</students>
Dom4jReadExmple.java
package dom4jExample.read;
import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* 利用dom4j进行XML编程
* @author cuiweibing
* @since 2007.8.10
*/
public class Dom4jReadExmple {
/**
* 遍历整个XML文件,获取所有节点的值与其属性的值,并放入HashMap中
* @param filename String 待遍历的XML文件(相对路径或者绝对路径)
* @param hm HashMap 存放遍历结果,格式:<nodename,nodevalue>或者<nodename+attrname,attrvalue>
*/
public void iterateWholeXML(String filename,HashMap<String,String> hm){
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read(new File(filename));
Element root = document.getRootElement();
// 用于记录学生编号的变量
int num=-1;
//遍历根结点(students)的所有孩子节点(肯定是student节点)
for ( Iterator iter = root.elementIterator(); iter.hasNext(); ) {
Element element = (Element) iter.next();
num++;
// 获取person节点的age属性的值
Attribute ageAttr=element.attribute("age");
if(ageAttr!=null){
String age = ageAttr.getValue();
if (age != null&&!age.equals("")) {
hm.put(element.getName() + "-"+ageAttr.getName()+ num, age);
} else {
hm.put(element.getName() + "-" +ageAttr.getName()+ num, "20");
}
}else{
hm.put(element.getName() + "-age"+ num, "20");
}
//遍历student结点的所有孩子节点(即name,college,telphone,notes),并进行处理
for ( Iterator iterInner = element.elementIterator(); iterInner.hasNext(); ) {
Element elementInner = (Element) iterInner.next();
if(elementInner.getName().equals("college")){
hm.put(elementInner.getName()+ num, elementInner.getText());
//获取college节点的leader属性的值
Attribute leaderAttr=elementInner.attribute("leader");
if(leaderAttr!=null){
String leader = leaderAttr.getValue();
if (leader != null&&!leader.equals("")) {
hm.put(elementInner.getName() + "-"+leaderAttr.getName()+ num, leader);
} else {
hm.put(elementInner.getName() + "-" +leaderAttr.getName()+ num, "leader");
}
}else {
hm.put(elementInner.getName() + "-leader"+ num, "leader");
}
}else{
hm.put(elementInner.getName()+ num, elementInner.getText());
}
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
TestDom4jReadExmple.java
package dom4jExample.read;
import java.util.HashMap;
/**
* 测试Dom4jReadExmple解析的情况
* @author cuiweibing
* @since 2007.8.10
*/
public class TestDom4jReadExmple {
public static void main(String[] args) {
try{
//获取解析完后的解析信息
HashMap<String,String> hashMap;
Dom4jReadExmple drb=new Dom4jReadExmple();
//遍历整个XML文件
hashMap = new HashMap<String,String>();
drb.iterateWholeXML("studentInfo.xml", hashMap);
System.out.println("姓名\t年龄\t学院\t学院领导\t电话\t\t备注");
for(int i=0;i<hashMap.size();i+=6){
int j=i/6;
System.out.print(hashMap.get("name"+j)+"\t");
System.out.print(hashMap.get("student-age"+j)+"\t");
System.out.print(hashMap.get("college"+j)+"\t");
System.out.print(hashMap.get("college-leader"+j)+"\t");
System.out.print(hashMap.get("telephone"+j)+"\t");
System.out.println(hashMap.get("notes"+j)+"\t");
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
运行结果
姓名 年龄 学院 学院领导 电话 备注
崔卫兵 25 PC学院 leader 62354666 男,1982年生,硕士,现就读于北京邮电大学
cwb 20 PC学院 学院领导 62358888 男,1987年生,硕士,现就读于中国农业大学
xxxxx 45 xxx学院 leader 66666666 注视中,注释中
lxx 20 yyyy学院 leader 88888888 注视中111,注释中222
发表评论
文章已被作者锁定,不允许评论。
-
Apache + Tomcat集群配置详解
2013-10-15 19:57 710Apache + Tomcat集群配置详解 ... -
maven eclipse
2013-06-05 08:41 10581. 安装m2eclipse插件 要用Eclipse构 ... -
ZooKeeper API
2013-05-16 17:27 8881)ZooKeeper API 简介 ZooKeeper ... -
给DIV添加滚动条
2012-08-02 10:51 1102直接为div指定overflow ... -
jboss数据源
2012-03-21 15:19 884jboss.xml in ejb/META-INF ... -
Apache+Jobss cluster安装配置
2012-03-21 11:21 1103系统环境:OS:linux AS4 2.6.9-78.EL A ... -
Spring 事务
2012-02-14 12:26 993Spring 事务不回滚的问题关键是:不能对该异常用 ... -
Apache 负载均衡+Tomcat集群
2012-01-17 08:45 1095一、本机环境 1.Windows 7 64位操作系统 2. ... -
ESB企业服务总线
2011-12-20 15:37 1299ESB是企业服务总线(Ente ... -
定庄记忆法
2011-08-13 10:53 1030桩可以分为大中小三类 ... -
Android开发环境搭建全程演示(jdk+eclip+android sdk)
2011-07-12 13:44 910Android开发环境搭建全程演示(jdk+eclip+a ... -
jbpm
2011-05-17 14:44 2018JBPM_ACTION action记录表 JBPM_DECI ... -
企业信息化十年
2010-12-02 22:06 9242000年之前:宇宙大爆炸 ... -
首先,遍历map有以下方法:
2010-10-22 13:00 1456首先,遍历map有以下方 ... -
职场能力
2010-10-02 17:49 1060如今职场竞争越发激烈,一大群求职者竞聘同一个(或少数几个)岗位 ... -
tomcat 配置
2010-09-24 10:39 9831、 PermGen space的全称是Permanent ... -
YUI:带checkbox的TreeView的赋值与读值
2010-09-18 21:26 2117日前做一个用户权限管理的页面,权限是一个树形结构,每个节点前是 ... -
Spring中的Assert工具类
2010-09-05 21:02 889方法入参检测工具 ... -
comments
2010-09-02 21:25 1115Item Description Comments ... -
tomcat 配置
2010-09-02 06:43 1412Tomcat内存溢出的原因 在生产环境中tomcat内存设置 ...
相关推荐
java dom4j 解析xml的例子,可用,另外内涵一个帮助类,其功能是:根据某个java工程中的文件名,获取这个文件在java工程中的绝对路径。解压加载到myeclipse上可用。
dom4j 解析xml文件小例子 dom4j 解析xml文件小例子
这里有很多dom4j解析的小例子,结合实例看看,就能懂得!
一个关于用dom4j解析xml,遍历xml,建立xml的简单例子
Dom4j例子 Dom4j例子 Dom4j例子 解析大部分的XML
Dom4j解析XML(例子)+Dom4j 使用简介
这是一个Dom4j解析XML的例子,为做复杂递归处理前期所写的例子。涵盖了XML的解析方面大部分核心API。
dom4j帮助文档及使用说明及案例,初学者快速上手。
DOM解析XML文件例子DOM解析XML文件例子DOM解析XML文件例子
使用Dom4j解析复杂的XML文件,简单的xml文件一个标签对,而复杂的xml文件标签对中还有自己的属性,那么这样的xml文件怎么解析呢?看了我的例子就知道了......
Dom4j解析xml与配置文件的小例子,简单的Dom4j的小应用。
很简单的dom4j例子,看下你就会用了!
Dom4j解析xml的包和API以及例子
dom4j解析Xml方式,里面附有例子以及包,绝对可以跑通的程序。
zip包中包含dom4j-1.6.1.jar、Dom4jDemo.java、art.xml 其中Dom4jDemo.java是dom4j解析art.xml的例子
dom4j 的包装类,可以让你轻易获取并改变xml的节点 以及生成一个xml
dom4j解析xml文件所需jar和测试例子 dom4j-1.6.1.jar jaxen-1.1-beta-7.jar crimson.jar 1个测试类
NULL 博文链接:https://javastudyeye.iteye.com/blog/794787
利用dom4j创建和解析XML文件的一个很好的例子
dom4j和jdom解析xml的例子dom4j jdom xml 解析