今天看struts源碼,發現了這么一個東西。在此是用來讀取struts的XML配置文件的。以前沒有大在意,現記下來,以備后用。
Digester是Jakarta 子項目Commons下的一個模塊,是基于SAX接口的,它簡化了SAX方法的解析過程。用的時候集中精力處理XML數據而不是花太多的時間在如何解析文件本身上。
以下是剛剛寫的一個小例子:
相關資源 http://jakarta.apache.org/commons/digester/
Digester是Jakarta 子項目Commons下的一個模塊,是基于SAX接口的,它簡化了SAX方法的解析過程。用的時候集中精力處理XML數據而不是花太多的時間在如何解析文件本身上。
以下是剛剛寫的一個小例子:
1
import org.apache.commons.digester.*;
2
import org.xml.sax.SAXException;
3
import java.io.*;
4
5
public class DigesterSample
{
6
public DigesterSample()
{
7
Digester digester = new Digester();
8
digester.push(this);
9
digester.addCallMethod("rocket/member", "print", 2);
10
digester.addCallParam("rocket/member/name", 0);
11
digester.addCallParam("rocket/member/age", 1);
12
try
{
13
digester.parse(getClass().getResourceAsStream("rocket.xml"));
14
}
15
catch (SAXException e)
{
16
e.printStackTrace();
17
}
18
catch (IOException ex)
{
19
ex.printStackTrace();
20
}
21
22
}
23
24
public void print(String name, String age)
{
25
System.out.println("name : " + name + " age : " + age);
26
}
27
28
public static void main(String[] args)
{
29
DigesterSample dig = new DigesterSample();
30
}
31
}
相應的rocked.xml文件如下:

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
<rocket>
2
<member>
3
<name>YaoMing</name>
4
<age>25</age>
5
</member>
6
</rocket>
放在編譯后的class同等目錄下即可。
2

3

4

5

6

相關資源 http://jakarta.apache.org/commons/digester/