Hey Emmett, dunno if you saw this response (below), but here's the relevant bit:

# just make sure you format it on output
 > format = true
 > # => true
 > doc.save('output.xml', format)
 > # => 352
 > <?xml version="1.0"?>
 > <root_node>
 >    <elem1 attr1="val1" attr2="val2"></elem1>
 >    <elem2 attr1="val1" attr2="val2"></elem2>
 >    <elem3></elem3>
 >    <foo>
 >      <bar1></bar1>
 >      <bar2></bar2>

via Document#save 
http://libxml.rubyforge.org/doc/classes/XML/Document.html#M000287

HTH,
Keith

Keith Fahlgren wrote:
> Emmett Shear wrote:
>> I can remove the byte order markers myself pretty easily; is there any
>> way to force libxml to output empty tags in <foo></foo> form?
> 
> Hi Emmett,
> 
> I think what you want to manipulate is xmlSaveNoEmptyTags[1] sadly, I don't 
> know 
> enough C and can't find anything similar to try to copy.
> 
> All that said, Trans' hack is a good one:
> 
> $ irb --prompt xmp libxml2.irb && cat output.xml
> require 'rubygems' # if installed via Gems
> # => true
> require 'xml/libxml'
> # => true
> 
> doc = XML::Document.new()
> # => <?xml version="1.0"?>
> 
> doc.root = XML::Node.new('root_node')
> # => <root_node/>
> root = doc.root
> # => <root_node/>
> 
> root << elem1 = XML::Node.new('elem1', "")
> # => <elem1></elem1>
> elem1['attr1'] = 'val1'
> # => "val1"
> elem1['attr2'] = 'val2'
> # => "val2"
> 
> root << elem2 = XML::Node.new('elem2', "")
> # => <elem2></elem2>
> elem2['attr1'] = 'val1'
> # => "val1"
> elem2['attr2'] = 'val2'
> # => "val2"
> 
> root << elem3 = XML::Node.new('elem3', "")
> # => <elem3></elem3>
> 
> # Namespace hack to reduce the numer of times XML:: is typed
> include XML
> # => Object
> root << elem7 = Node.new('foo')
> # => <foo/>
> 1.upto(10) {|i| elem7 << n = Node.new("bar#{i}", "") }
> # => 1
> 
> format = true
> # => true
> doc.save('output.xml', format)
> # => 352
> <?xml version="1.0"?>
> <root_node>
>    <elem1 attr1="val1" attr2="val2"></elem1>
>    <elem2 attr1="val1" attr2="val2"></elem2>
>    <elem3></elem3>
>    <foo>
>      <bar1></bar1>
>      <bar2></bar2>
>      <bar3></bar3>
>      <bar4></bar4>
>      <bar5></bar5>
>      <bar6></bar6>
>      <bar7></bar7>
>      <bar8></bar8>
>      <bar9></bar9>
>      <bar10></bar10>
>    </foo>
> </root_node>
> 
> 
> HTH,
> Keith
> 1. http://xmlsoft.org/html/libxml-globals.html#xmlSaveNoEmptyTags
> _______________________________________________
> libxml-devel mailing list
> libxml-devel@rubyforge.org
> http://rubyforge.org/mailman/listinfo/libxml-devel
> 

_______________________________________________
libxml-devel mailing list
libxml-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/libxml-devel

Reply via email to