Markus Jais wrote:

>> 1) NQXML
>> 2) REXML
>> 3) XMLParser (expat)
....
> I think the XMLParser maybe has the advantage of being faster
> (and this might often be an issue. I am trying to do some xml programming
> at work und here performance is the main reason. I'd really like to use
> ruby or python or at least java, but unfortunately I have to stick to
> C or C++ as it seems)
> 
> Rexml has the coolest API in my opinion and maybe the easiest
> but I do not know how it's performance is compares to XMLParser

Hi.  I'm the author of REXML, so I'll jump in here.

I haven't done any tests, but in a speed test I'd be willing to lay a fiver 
on XMLParser.

If we're talking about an XML parser to be distributed with Ruby, I'd 
support a primarily native implementation, for speed's sake.  Personally, I 
have no problem with things that are part of the Ruby distribution being 
native libraries.  I suppose parts of REXML could be reimplemented in C, 
but I'm not really interested in working on that myself.

XMLParser relies on Expat, which is a fine and august XML parser.  If the 
license permits including Expat with Ruby, that might be the way to go.  It 
has been a while since I looked at Expat, so I'm not sure what features it 
provides.

As far as REXML is concerned, I obviously like the API the most.  I try to 
keep the speed as fast as possible, but there's only so much you can do in 
Ruby. There are a couple of things that REXML needs work on, such as more 
flexible whitespace handling, before I'd allow it to be released with Ruby. 
I'd also recommend that if it were up for serious consideration for 
inclusion with Ruby, that some people (other than myself) sit down 
(virtually) and take a hard look at the API and make sure that it can't be 
improved (read: simplified, made more intuitive).

One other thing to consider is that I haven't posted any changes to REXML 
because I've been busy re-writing XPath.  With the next release, it should 
be pretty close to fully conformant with the XPath spec, and will be 
feature complete. XSL processors require a fairly robust XPath 
implementation to be implemented properly.

--- SER