Remove newline characters in d anchors

hi

i am working on this code where i need to list the files in a dir and
store it in a xml, which i managed to do. however in the generated xml
there are newline characters (\n) appearing before and after the actual
text value of each node.

below is the code i am using

require ‘rexml/document’
require ‘find’

doc = REXML::Document.new
main = doc.add_element ‘main’

main.attributes[‘name’] = “”

Find.find(’./’){|path| puts path[2,path.length] }

Find.find(’./’){|path|
if path != ‘./dirlisting.rb’
if ! File::directory? ( path )
newfile = main.add_element ‘file’
newfile.text = path[2,path.length]
end
end
}

outfile = open(‘dirlist.xml’, ‘w’)
doc.write(outfile, 0)

open(‘dirlist.xml’, ‘w’) { |f| f << doc}

below is the sample output in the xml wid newline characters before &
after each text value within the anchors

340330_10150281813536470_96585976469_8235727_1982670115_o.jpg 507999446_JUN2009.pdf 8.10669690.00.00.100193.pdf Asset List_Tracker.xls BM.jpg BM2.JPG

how can i get rid of those line breaks in each nodes and have a clean
node with just the text value?

On Thu, Dec 8, 2011 at 8:54 AM, mythpills P. [email protected]
wrote:

require ‘find’
newfile = main.add_element ‘file’
newfile.text = path[2,path.length]

I think you want

newfile.text = path[2…path.length]

or

newfile.text = path[2…-1]

That won’t solve your nl issue but is more correct.

end
end
}

outfile = open(‘dirlist.xml’, ‘w’)
doc.write(outfile, 0)

You do not close the file properly. Better do

open(‘dirlist.xml’, ‘w’) {|outfile| doc.write(outfile)}

how can i get rid of those line breaks in each nodes and have a clean
node with just the text value?

You want REXML::Formatters::Pretty#compact

irb(main):001:0> doc = REXML::Document.new
“123444”
=> … </>
irb(main):002:0> fmt = REXML::Formatters::Pretty.new
=> #<REXML::Formatters::Pretty:0x10615890 @indentation=2, @level=0,
@ie_hack=false, @width=80, @compact=false>
irb(main):003:0> fmt.compact
=> false

irb(main):004:0> fmt.compact=true
=> true
irb(main):005:0> fmt.write(doc, $stdout)

123

444

=> [<?xml ... ?>, … </>]

irb(main):006:0> fmt.compact=false
=> false
irb(main):007:0> fmt.write(doc, $stdout)


123



444


=> [<?xml ... ?>, … </>]

Kind regards

robert

i just made the first 2 edits which u suggested and it worked :slight_smile:

Thanks Robert for being there on every posts of mine and putting some
sense in my empty head

w.r.t 2 the format code not sure how i can implement in my program… but
anyways the prob of newline is resolved.

will look forward to your support in my ruby adventure. respect!

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs