Hermann, I followed Sebatian's advice to use print instead of puts and
that solved my problem. But I would still like to understand how to
remove the newline characters. Here's my code as it currently stands
(with "rssfile.print line" in place of "rssfile.puts line"), hopefully
it will help you see how I was trying to tackle the problem.
require("rubygems")
require("scrubyt")
require ("open-uri")
require 'time'
require 'date'
psi = Scrubyt::Extractor.define do
fetch("http://app.nea.gov.sg/psi/")
record("/html/body/div/table/tr/td/table/tbody/tr/td/div",
{ :generalize => true }) do
title("/strong[1]/font[1]")
item("/table/tbody/tr/td/table/tbody/tr", { :generalize => true })
do
region("/td[1]")
psi("/td[7]")
aqd("/td[8]")
end
end
end
f = open("psiregions.xml", File::CREAT|File::TRUNC|File::RDWR) {|f|
psi.to_xml.write(f, 1)
}
# Create the RSS file.
rssfile = File.new("sgpsi.xml", "w")
rssfile.puts('<?xml version="1.0" encoding="UTF-8"?>')
rssfile.puts('<rss version="2.0">')
rssfile.puts(' <channel>')
rssfile.puts(' <link>http://app.nea.gov.sg/psi/</link>')
rssfile.puts(' <description>Singapore PSI Readings</description>')
#rssfile.puts(' <title>Singapore PSI Readings' + Time.now.rfc2822
+ '</title>')
rssfile.puts(' <lastBuildDate>' + Time.now.rfc2822 + '</
')
rssfile.puts(' <webMaster>singeo@singeo.com.sg</webMaster>')
File.open('psiregions.xml', 'r') do |f1|
while line = f1.gets
line=line.strip
line.gsub!(/<root>/, "")
line.gsub!(/<\/root>/, "")
line.gsub!(/<record>/, "")
line.gsub!(/<\/record>/, "")
line.gsub!("24-hr", "Singapore 24-hr")
line.gsub!("<region>Region</region>", "")
line.gsub!("<region>Sulphur Dioxide</region>", "")
line.gsub!(/<region>/, "<title>")
line.gsub!(/<\/region>/,":")
line.gsub!(/<psi>/, " PSI Level ")
line.gsub!(/<\/psi>/, "")
line.gsub!(/<aqd>/, " - ")
line.gsub!(/<\/aqd>/, "</title>")
line.gsub!(/<item>/, "<item><pubDate>" + Time.now.rfc2822 + "</
")
line.gsub!(/<\/item>/, "</item>\n")
rssfile.print line
end
end
rssfile.puts('')
rssfile.puts('</channel>')
rssfile.puts('</rss>')
rssfile.close
···
On May 17, 6:20 pm, Hermann Martinelli <hermann.martine...@yahoo.com> wrote:
Singeo wrote:
> Hi Hermann, just tried your suggestion of:
> line.gsub!(/\015/, '')
> still no success. I'm creating and running the file on a Mac.
Are you shure that you it is not successful?
It would be good to know how you read the lines,
how you (not) remove the carriage returns,
and how you perhaps put the lines together
(adding again \r characters by mistake?).
Are you removing the carriage returns line
by line (in which case the chomp should be perfect)
or are you trying it as a whole, i.e. do you have
not only one line but a whole file in 'line'?
Rather than an answer to these questions I would
prefer to see some more code of the whole part
from opening the file to writing back or putting
out the strings.
Hermann