This is a multi-part message in MIME format.
--------------010809030902000701090900
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hello,
It's one month since I started using Ruby, and guess what? I've already 
figured how to write my very own extension! ;-)
I chose libxml2 (http://www.libxml.org) to experiment, and here's the 
results of a couple of weekends of hacking...

Obviously it's nowhere complete as far as the API goes, but it's a start..

Install and play with it and report the bugs. One major advantage of 
libxml is that it does full DOM in addtion to SAX (the current 
Expat-based extension can only do SAX).

p.s. I've no site to put the tarball up, can I put it up at the RAA?

-- 
Wai-Sun "Squidster" Chia
Unix/Web Developer/RHCE
Professional Services

--------------010809030902000701090900
Content-Type: application/octet-stream;
 nameuby-gnomexml-0.0.1.tgz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filenameuby-gnomexml-0.0.1.tgz"

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
uq3buq3S/gOqlvlbAFAAAA--------------010809030902000701090900--