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