俊星的BLOG
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2009年4月
>
日
一
二
三
四
五
六
29
30
31
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
1
2
3
4
5
6
7
8
9
统计
随笔 - 50
文章 - 0
评论 - 6
引用 - 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
代码库(7)
(rss)
随笔档案
2010年11月 (3)
2010年10月 (12)
2009年6月 (5)
2009年5月 (22)
2009年4月 (8)
最新随笔
1. 实现变更统计
2. 切换IE8中碰到的问题
3. 发布FWMS
4. ActiveMQ初探
5. CAS初步配置
搜索
最新评论
1. re: JAVA图像缩放处理[未登录]
不错的方法
--test
2. re: freetts初探
学习了! 就是不清楚为啥在eclipse下跑不起来...
--apiao
3. re: freetts初探
System property "mbrola.base" is undefined. Will not use MBROLA voices.
这个问题怎么解决啊?
--珑儿
4. re: ActiveMQ初探
测试通过。多谢
--71569973
5. 登录网站
评论内容较长,点击标题查看
--ahome
阅读排行榜
1. ftp的port和pasv模式(转)(8024)
2. JAVA图像缩放处理(4174)
3. Nutz初步试用(4104)
4. Window下FTP命令使用(3508)
5. freetts初探(3407)
6. ActiveMQ初探(2898)
7. MYSQL Access denied 问题的解决(2340)
8. HTTP Client及HTTPS初探(1981)
9. JAVA单向加密(MD5,SHA,MAC)(1262)
10. CAS认证初探(1147)
评论排行榜
1. freetts初探(2)
2. HTTP Client及HTTPS初探(2)
3. ActiveMQ初探(1)
4. JAVA图像缩放处理(1)
5. 我的DWR之DefaultContainer(0)
JAVA SAX之简单实用
SAX是Simple API for XML的缩写(官网:
saxproject
),一个用来解决大型XML文档读取的接口,下面是我的简单试用:
import
java.io.FileInputStream;
import
javax.xml.parsers.SAXParser;
import
javax.xml.parsers.SAXParserFactory;
import
org.xml.sax.Attributes;
import
org.xml.sax.InputSource;
import
org.xml.sax.SAXException;
import
org.xml.sax.XMLReader;
import
org.xml.sax.helpers.DefaultHandler;
/** */
/**
* 需要继承自DefaultHandler
*
@author
kinkding
*/
public
class
Test
extends
DefaultHandler
{
protected
StringBuffer bodyText
=
new
StringBuffer();
private
int
level
=
0
;
/** */
/**
开始解析元素
*/
public
void
startElement(String namespaceURI, String localName, String fullName, Attributes attributes)
throws
SAXException
{
System.out.print(getPrefix()
+
"
<
"
+
fullName
+
"
(
"
);
for
(
int
i
=
0
; i
<
attributes.getLength(); i
++
)
{
String temp
=
attributes.getQName(i);
String value
=
attributes.getValue(i);
System.out.print(temp
+
"
:
"
+
value
+
"
"
);
}
System.out.println(
"
)>
"
);
level
++
;
}
/** */
/**
元素间内容的处理
*/
public
void
characters(
char
buffer[],
int
start,
int
length)
throws
SAXException
{
bodyText.append(buffer, start, length);
}
/** */
/**
结束元素的解析
*/
public
void
endElement(String namespaceURI, String localName, String fullName)
throws
SAXException
{
System.out.println(getPrefix()
+
bodyText.toString().trim());
bodyText
=
new
StringBuffer();
level
--
;
System.out.println(getPrefix()
+
"
<
"
+
fullName
+
"
>
"
);
}
private
String getPrefix()
{
String s
=
""
;
for
(
int
i
=
0
; i
<
level; i
++
)
{
s
+=
"
"
;
}
return
s;
}
public
XMLReader getReader()
throws
Exception
{
SAXParser parser
=
SAXParserFactory.newInstance().newSAXParser();
XMLReader reader
=
parser.getXMLReader();
reader.setDTDHandler(
this
);
reader.setContentHandler(
this
);
reader.setEntityResolver(
this
);
reader.setErrorHandler(
this
);
return
reader;
}
public
static
void
main(String[] args)
throws
Exception
{
Test t
=
new
Test();
XMLReader reader
=
t.getReader();
reader.parse(
new
InputSource(
new
FileInputStream(
"
test.xml
"
)));
}
}
test.xml文件内容如下:
<?
xml version='1.0'
?>
<
table
name
="job"
code
="1234"
>
<
tr
>
我的家
</
tr
>
<
td
colspan
="2"
>
生命就像一条大河
</
td
>
<
td
colspan
="3"
>
goodjob
</
td
>
</
table
>
输出如下:
<table(name:job code:
1234
)>
<tr()>
我的家
<tr>
<td(colspan:
2
)>
生命就像一条大河
<td>
<td(colspan:
3
)>
goodjob
<td>
<table>
posted on 2009-04-30 20:29
俊星
阅读(163)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
Powered by:
BlogJava
Copyright © 俊星