QDParser (Quick-and-Dirty XML Parser) 提供了我們一個小兒美的工具,讓我們可以輕鬆的讀取XML。雖然不支援XML scheam,  DTD,.....。但是,我認為這已經夠了。至少對我現在的工作是如此。

這裡不是要介紹如何使用,要用的人,看看原始網站,並Download下source code,應該很快可以上手。他是一個event-driven的xml parser,需要做的事,就是implement interface  DocHandler中的一些Function。只是問題是,我測試了一下,有個小bug。不過,卻沒看到有人解決,好在總共300多行的code, 要解決也不太困難。



 

首先說一下bug

<tag_1>
     <tag_2>value</tag_2>
</tag_1>

問題就在於,上面的xml,為了人方便讀,縮排是很常見的。但這卻讓QDParser發生了一個問題,會將空白部份也觸發 DocHandler.text()的event

 

我將改後的code放在這http://gatorliu.googlepages.com/QDParser.java 

另外,我還將

public static void parse(DocHandler doc,Reader r)

改成了

 public static void parse(DocHandler doc, String xml)

(只是為了工作(web service)上得需要)