Project

General

Profile

Actions

Feature #9379

closed

Support for using libxml-ruby as XML parser in xmlrpc-libs

Feature #9379: Support for using libxml-ruby as XML parser in xmlrpc-libs

Added by herwinw (Herwin Quarantainenet) almost 12 years ago. Updated about 11 years ago.

Status:
Closed
Target version:
-
[ruby-core:59633]

Description

The default backend in the XMLRPC parser is REXML. This should work at most occasions, but it definitely isn't the fastest implementation. The attached patch allows a backend using libxml-ruby http://xml4r.github.io/libxml-ruby/ which should be more efficient. It successfully passes the unit tests available in the file test/xmlrpc/test_parser.rb

The default isn't changed in this patch, so when libxml-ruby isn't available nothing is changed. Even if it's available, you still have to change the parsing backend before it is used.


Files

libxml-as-xmlrpc-parser.diff (1.79 KB) libxml-as-xmlrpc-parser.diff herwinw (Herwin Quarantainenet), 01/08/2014 12:32 AM

Updated by trans (Thomas Sawyer) over 11 years ago Actions #1 [ruby-core:61989]

This seems like a very reasonable idea. (Maybe it would even be possible to add support for Nokogiri too?) One thing though, is there a way to not load REXML at all if it is not needed?

Updated by herwinw (Herwin Quarantainenet) over 11 years ago Actions #2 [ruby-core:62016]

I guess support for Nokogiri will be possible as well, I just needed something more efficient than REXML and libXML was the first thing I tried, and it just worked.

Regarding your second point: that really needs some restructuring of loading the backends, I think that is a little bit outside the scope of this ticket.

Updated by hsbt (Hiroshi SHIBATA) about 11 years ago Actions #3 [ruby-core:65659]

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

Applied in changeset r47902.


  • lib/xmlrpc/parser.rb: added new parser class using libxml-ruby gem.
    [Feature #9379][ruby-core:59633]
  • lib/xmlrpc/config.rb: ditto.

Updated by zzak (zzak _) about 11 years ago Actions #4 [ruby-core:65682]

  • Status changed from Closed to Assigned
  • Assignee set to hsbt (Hiroshi SHIBATA)

Needs tests

Updated by hsbt (Hiroshi SHIBATA) about 11 years ago Actions #5 [ruby-core:65687]

  • Status changed from Assigned to Closed

all StreamParser have no tests.

Actions

Also available in: PDF Atom