Indenting REXML output

Hey Guys,

Anyone know how to get REXML to generate indented XML? At the moment I
get something like this:

Superglue is great
stuff.

When I really want this:

Superglue is great stuff.

Sonny.

Quoth Sonny C.:

Superglue is great stuff.

Sonny.

You can use a generic XML beautifier on the output. Google is your
friend.

Regards,

Konrad M. wrote:

Quoth Sonny C.:

Superglue is great stuff.

Sonny.

You can use a generic XML beautifier on the output. Google is your
friend.

Regards,

Thanks for the tip, Konrad!

Sonny.

2007/11/13, Sonny C. [email protected]:

Konrad M. wrote:

Quoth Sonny C.:

Superglue is great stuff.

Sonny.

You can use a generic XML beautifier on the output. Google is your
friend.

Not necessary. Documentation is your friend.

http://www.germane-software.com/software/rexml/docs/tutorial.html#id2248510

robert

Sonny C. wrote:

Robert K. wrote:

Not necessary. Documentation is your friend.

http://www.germane-software.com/software/rexml/docs/tutorial.html#id2248510

robert

Awesome, even better! Thanks Robert. I was actually reading that
documentation but somehow overlooked that section. Thanks again!

Do you get that formatting to work? I get a NameError exception
(“undefined local variable or method `transitive’”) when I use a second
parameter to doc.write. As in:

require “rexml/document”
doc = REXML::Document.new ‘’
doc.root.add_element(“other”)
doc.write( $stdout, 0 )

Best regards,

Jari W.

Robert K. wrote:

2007/11/13, Sonny C. [email protected]:

Konrad M. wrote:

Quoth Sonny C.:

Superglue is great stuff.

Sonny.

You can use a generic XML beautifier on the output. Google is your
friend.

Not necessary. Documentation is your friend.

http://www.germane-software.com/software/rexml/docs/tutorial.html#id2248510

robert

Awesome, even better! Thanks Robert. I was actually reading that
documentation but somehow overlooked that section. Thanks again!

Sonny.

Jari W. wrote:

Sonny C. wrote:

Robert K. wrote:

Not necessary. Documentation is your friend.

http://www.germane-software.com/software/rexml/docs/tutorial.html#id2248510

robert

Awesome, even better! Thanks Robert. I was actually reading that
documentation but somehow overlooked that section. Thanks again!

Do you get that formatting to work? I get a NameError exception
(“undefined local variable or method `transitive’”) when I use a second
parameter to doc.write. As in:

require “rexml/document”
doc = REXML::Document.new ‘’
doc.root.add_element(“other”)
doc.write( $stdout, 0 )

Best regards,

Jari W.

I got the same error message as you did Jari. But I did find the REXML
changelog, which shows the revised method to get pretty printing. This
worked for me.

(http://www.germane-software.com/software/rexml/release.html)

r1281@bean: ser | 2007-07-24 11:08:48 -0400
Addresses ticket:85

This is a major rewrite of the XML formatting code. The XML writers have
all
been extracted out of the classes and put into their own class
containers.
This makes writing parsers easier, and cleaner.

There are three formatters, which correspond to the previous three XML
writing
modes:

REXML::Formatters::Default
Prints the XML document exactly as it was parsed
REXML::Formatters::Pretty
Pretty prints the XML document, destroying whitespace in the document
REXML::Formatters::Transitive
Pretty prints the XML document, preserving whitespace

All of the write() functions have been deprecated (some are still used,
but
these will also go away) except the write() function on Document, which
is left
for convenience. To pretty print an XML document the canonical way:

formatter = REXML::Formatters::Pretty.new( 5 ) # indent by 5 spaces
formatter.write( document, output

Sonny.