> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 01 Jul 2008 01:19:13 -0600
> From: Charlie Savage <[EMAIL PROTECTED]>
> Subject: Re: [libxml-devel] parsing document containing doctype with
>        saxparser causes null pointer given
> To: libxml-devel@rubyforge.org
> Message-ID: <[EMAIL PROTECTED]>
> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>
> > Wenn i try to parse a Document that has a doctype declaration with the
> > saxparser i get the following message:
> >
> > /Library/Ruby/Gems/1.8/gems/rails-2.0.2/lib/commands/runner.rb:45:
> > (eval):95:in `parse': NULL pointer given (ArgumentError)
> >       from (eval):95
> >       from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:27:in `eval'
> >       from
> /Library/Ruby/Gems/1.8/gems/rails-2.0.2/lib/commands/runner.rb:
> > 45
> >       from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:27:in
> > `gem_original_require'
> >       from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:27:in
> > `require'
> >       from ../../../script/runner:3
> >
> > This is the document (inner contents removed)
> > <?xml version="1.0" encoding="UTF-8"?>
> > <!DOCTYPE ONIXmessage SYSTEM "http://www.editeur.org/onix/2.1/short/
> > onix-international.dtd">
> > <ONIXmessage release="2.1">
> > </ONIXmessage>
>
> This seems to work for me.  My test:
>
>
>   xp = XML::SaxParser.new
>   xp.string = <<-EOS
>       <?xml version="1.0" encoding="UTF-8"?>
>          <!DOCTYPE ONIXmessage SYSTEM
> "http://www.editeur.org/onix/2.1/short/onix-international.dtd";>
>       <ONIXmessage release="2.1">
>            </ONIXmessage>
>     EOS
>   xp.parse
>
> Charlie
>

I'm having the same issue.  It seems the issue manifest itself when
callbacks is set.  Below is an example; if I remove DOCTYPE tag, the problem
is gone.  Any ideas on solutions or workarounds?

class Handler
  include XML::SaxParser::Callbacks
  def on_start_element(element, attributes)
    puts element
  end
end

xp = XML::SaxParser.new
xp.callbacks = Handler.new
xp.string = <<-EOS
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Results SYSTEM "results.dtd">
<Results>
<a>a1</a>
</Results>
  EOS
xp.parse
_______________________________________________
libxml-devel mailing list
libxml-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/libxml-devel

Reply via email to