I never could get it to work properly... It's like.. when I used the
fourth variable as you suggested, the <rows> component was missing.

IE:

irb> DBI::Utils::XMLFormatter.table(dbh.select_all("SELECT *
FROM people"), nil, nil, asdf)

puts asdf

<>
<row>
   <yada>
   </yada>
</row>
</>

When I threw in the variable as the second paramater, I would get the
<rows> piece but not the <row>.... Hard to expain right now because I
have no db to test it on but at work, this is what happened... Does
this provide enough detail?


On 5/18/06, Daniel Berger <djberg96 / gmail.com> wrote:
> x1 wrote:
> > [xml.rb]
> > require 'dbi'
> > DBI::Utils::XMLFormatter.table(dbh.select_all("SELECT * FROM people"))
> > [/xml.rb]
> >
> > When I run this from the dos prompt, I do get the appropriate output, IE:
> > c:\scripts>ruby xml.rb
> > <?xml version="1.0" encoding="UTF-8" ?>
> >   <rows>
> >   <row>
> >     <id>1</id>
> >     <name>Wanda</name>
> >     <height>62.5</height>
> >   </row>
> >   <row>
> >     <id>2</id>
> >     <name>Robert</name>
> >     <height>75.0</height>
> >   </row>
> > c:\scripts>
> >
> > But from within the script, I'm unable to capture this output as a
> > string, for example:
> > irb> require 'dbi'
> > irb> asdf = DBI::Utils::XMLFormatter.table(dbh.select_all("SELECT *
> > FROM people"))
> > irb> puts asdf
> > => #<IO:0x2c18968>
> > [/xml_borked.rb]
> >
> > I'd like to be able to use puts to output the results of the
> > DBI::Utils::XMLFormatter method.
> >
> > Any suggestions?
>
> The XMLFormatter.table method takes four arguments.  The fourth argument
> specifies an IO handle to send the output.  By default this is set to
> STDOUT.  So, your options are to either provide an IO object for the
> fourth argument, or temporarily redirect STDOUT.
>
> I should mention that this part of the dbi package has not been
> refactored or properly documented via rdoc yet.  We need to get on that. :)
>
> Regards,
>
> Dan
>
>