为人尽量保持低调。尊重别人,不要随便去打断别人的发言,认真的听别人的言语。不要老是想着把话题抢过来抓在自己手里。不能放开的人是没法获得的。
|
首页
| |
发新文章
|
联系
|
聚合
|
管理
用java读写xml(org.apache.crimson)
1
import
java.io.
*
;
2
import
java.util.
*
;
3
import
javax.xml.parsers.
*
;
4
import
org.w3c.dom.
*
;
5
import
org.apache.crimson.tree.XmlDocument;
6
7
public
class
XMLDemo
{
8
9
Hashtable ht;
10
11
protected
void
readXML(String filename)
throws
Exception
{
12
DocumentBuilderFactory dbf
=
DocumentBuilderFactory.newInstance();
13
DocumentBuilder db
=
null
;
14
try
{
15
db
=
dbf.newDocumentBuilder();
16
}
catch
(ParserConfigurationException ce)
{
17
System.err.println(ce);
18
System.exit(
1
);
19
}
20
Document doc
=
null
;
21
try
{
22
doc
=
db.parse(filename);
23
}
catch
(IOException ioe)
{
24
System.err.println(ioe);
25
System.exit(
1
);
26
}
catch
(DOMException e)
{
27
System.err.println(e.getMessage());
28
System.exit(
1
);
29
}
30
31
Element root
=
doc.getDocumentElement();
32
NodeList students
=
root.getElementsByTagName(
"
学生
"
);
33
for
(
int
i
=
0
; i
<
students.getLength(); i
++
)
{
34
Element student
=
(Element)students.item(i);
35
javaxml.StudentBean sb
=
new
javaxml.StudentBean();
36
sb.setSex(student.getAttribute(
"
性别
"
));
37
NodeList name
=
student.getElementsByTagName(
"
姓名
"
);
38
if
(name.getLength()
==
1
)
{
39
Element e
=
(Element)name.item(
0
);
40
Text t
=
(Text)e.getFirstChild();
41
sb.setName(t.getNodeValue());
42
}
43
NodeList age
=
student.getElementsByTagName(
"
年龄
"
);
44
if
(age.getLength()
==
1
)
{
45
Element e
=
(Element)age.item(
0
);
46
Text t
=
(Text)e.getFirstChild();
47
sb.setAge(Integer.parseInt(t.getNodeValue()));
48
}
49
NodeList phone
=
student.getElementsByTagName(
"
电话
"
);
50
if
(phone.getLength()
==
1
)
{
51
Element e
=
(Element)phone.item(
0
);
52
Text t
=
(Text)e.getFirstChild();
53
sb.setPhone(t.getNodeValue());
54
}
55
ht.put(i, sb);
56
}
57
}
58
59
protected
void
writeXML(String filename)
throws
Exception
{
60
DocumentBuilderFactory dbf
=
DocumentBuilderFactory.newInstance();
61
DocumentBuilder db
=
null
;
62
try
{
63
db
=
dbf.newDocumentBuilder();
64
}
catch
(ParserConfigurationException pce)
{
65
System.err.println(pce);
66
System.exit(
1
);
67
}
68
Document doc
=
null
;
69
try
{
70
doc
=
db.newDocument();
71
}
catch
(DOMException de)
{
72
System.err.println(de.getMessage());
73
System.exit(
1
);
74
}
75
76
Element root
=
doc.createElement(
"
学生花名册
"
);
77
doc.appendChild(root);
78
for
(
int
i
=
0
; i
<
ht.size(); i
++
)
{
79
javaxml.StudentBean sb
=
(javaxml.StudentBean)ht.get(i);
80
Element student
=
doc.createElement(
"
学生
"
);
81
student.setAttribute(
"
性别
"
, sb.getSex());
82
root.appendChild(student);
83
Element name
=
doc.createElement(
"
姓名
"
);
84
student.appendChild(name);
85
Text t_name
=
doc.createTextNode(sb.getName());
86
name.appendChild(t_name);
87
Element age
=
doc.createElement(
"
年龄
"
);
88
student.appendChild(age);
89
Text t_age
=
doc.createTextNode(sb.getAge()
+
""
);
90
age.appendChild(t_age);
91
Element phone
=
doc.createElement(
"
电话
"
);
92
student.appendChild(phone);
93
Text t_phone
=
doc.createTextNode(sb.getPhone());
94
phone.appendChild(t_phone);
95
}
96
FileOutputStream fo
=
new
FileOutputStream(filename);
97
OutputStreamWriter osw
=
new
OutputStreamWriter(fo);
98
((XmlDocument)doc).write(osw,
"
gb2312
"
);
99
osw.close();
100
fo.close();
101
}
102
void
showxml(
int
i)
{
103
//
for(int i = 0; i < ht.size(); i++){
104
javaxml.StudentBean sb
=
(javaxml.StudentBean)ht.get(i);
105
System.out.println(sb.getName());
106
System.out.println(sb.getSex());
107
System.out.println(sb.getAge());
108
System.out.println(sb.getPhone());
109
//
}
110
}
111
112
113
/** */
/**
114
*
@param
args
115
*
@throws
Exception
116
*/
117
public
static
void
main(String[] args)
throws
Exception
{
118
//
TODO Auto-generated method stub
119
long
stat
=
System.currentTimeMillis();
120
long
end;
121
System.out.println(
"
开始读取文件!
"
);
122
XMLDemo x
=
new
XMLDemo();
123
x.ht
=
new
Hashtable();
124
x.readXML(
"
Input.xml
"
);
125
System.out.println(
"
文件读取完毕!\r
显示读取内容
"
);
126
x.showxml(
0
);
127
System.out.println(
"
读取内容显示完毕
\r输出读取内容到OutputXmlDemo.xml
"
);
128
x.writeXML(
"
OutputXmlDemo.xml
"
);
129
end
=
System.currentTimeMillis();
130
System.out.println(
"
程序运行时间:
"
+
(end
-
stat));
131
}
132
133
}
134
Input.xml
1
<?
xml version="1.0" encoding="GB2312"
?>
2
3
<
学生花名册
>
4
<
学生 性别="男"
>
5
<
姓名
>
李华
</
姓名
>
6
<
年龄
>
19
</
年龄
>
7
<
电话
>
1234567
</
电话
>
8
</
学生
>
9
<
学生 性别="女"
>
10
<
姓名
>
张六
</
姓名
>
11
<
年龄
>
18
</
年龄
>
12
<
电话
>
7654321
</
电话
>
13
</
学生
>
14
</
学生花名册
>
其中apache.crimson可来这里
下载
得到
仅供学习,有兴趣大家交流下
发表于 2008-03-23 16:16
(北京)木木
阅读(1082)
评论(0)
编辑
收藏
所属分类:
java
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
Redis 数据库的键值设计
Redis示例配置文件 2.4
JVM监控工具介绍
Dbutils 详解
JAVA基础知识精华总结
jdk5的拆箱与装箱
jdk1.5 Arrays 学习笔记
[转]Struts2 如何在 jdk 1.4下运行
tomcat porgram with many error in linux but it's fine in windows
javascript+java截取图像,图像处理
随笔:8 文章:23 评论:45 引用:0
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
留言簿
(5)
给我留言
查看公开留言
查看私人留言
文章分类
(25)
html(2)
(rss)
java(15)
(rss)
javascript(7)
(rss)
正则表达式(1)
(rss)
最新随笔
1. Redis 数据库的键值设计
2. Redis示例配置文件 2.4
3. JVM监控工具介绍
4. 悟
5. 8种代码臭味
6. Java多线程编程总结
7. Dbutils 详解
8. 一套完整的javascript面试题--答案
9. 一套完整的javascript面试题--试题
10. JAVA基础知识精华总结
搜索
积分与排名
积分 - 38329
排名 - 1191
最新评论
1. re: Dbutils 详解
学习中
--江鸽
2. re: 原创【整合iis+tomcat(成功)】
为什么我没成功!运行很慢
--hailan
3. re: 原创【整合iis+tomcat(成功)】
通过你的表述。 结果有用了。 但是貌似读取文件好慢。还是多谢了!!!
--ff
4. re: 原创【整合iis+tomcat(成功)】
谢谢
--mens moncler coats
5. re: java 图片切割,缩放,转换类型
垃圾自己检查下
--飞速度放松