Converting HTML input data to pre-format XML data

Hi All,

I am really new to Ruby and here is my dilemma. I need to write a
ruby-cgi (.rb) script that just spits back pre-formatted XML. Basically,
my script would accomplish the following:

a.) Read in your form variables (name-value pair).
b.) Construct the right xml block.
c.) Submit the XML to BaseCamp API.

I have an interface to implement step c. However, as a start, I
implemented “step a” (as shown below). It simply reads in my HTML-input
fields (via submit from HTML-form to the script) and POST it to the
server as “raw” text.

#!c:\ruby\bin\ruby
require “cgi”
require ‘rexml/document’
include REXML

cgi = CGI.new
response = String.new

#loop thru each name-value paired-element and save them in response
cgi.params.each_pair{|key, value|
response += “name = #{key}, value = #{value}

}

cgi.out(“charset” => “utf-8”,
“type” => “text/html”) {
response
}

produces:

name = location5, value = Code for Location 5
name = ScoutArea, value = Add New Resource
name = FriendlyResponse, value = 9
name = ForceNewBug, value = 9
name = ScoutDefaultMessage, value = Thank you for submitting your issue.
The request has been logged in the Issue Tracking System and will be
handled in priority order.
name = resourceURL, value = http://stuff.com
name = Extra, value = This is a test
name = location1, value = Code for Location 1
name = location2, value = Code for Location 2
name = resourceAnnotation, value = This is a test
name = location3, value = Code for Location 3
name = resourceType, value = Type
name = location4, value = Code for Location 4
name = ScoutProject, value = Project Name
name = ScoutUserName, value = John D.
name = resourceTitle, value = New drugs for Type II Diabetes Patients
name = Description, value = Add New Resource: New drugs for Type II
Diabetes Patients

“Step b” is to convert the “posted” text to a pre-formated XML block
that will be submitted to BaseCamp API (step c).

When I changed cgi-out to xml type shown below (with the rest of the
script the same)

cgi.out(“charset” => “utf-8”,
“type” => “text/xml”) {
response

it produces the following error message:

XML Parsing Error: syntax error
Location: http://mystuff/cgi-bin/Submitter.rb
Line Number 1, Column 1:

name = location5, value = Code for Location 5
name = ScoutArea,
value = Add New Resource
name = FriendlyResponse, value = 1
name
= ForceNewBug, value = 1
name = ScoutDefaultMessage, value = Thank
you for submitting your issue. The request has been logged in the Issue
Tracking System and will be handled in priority order.
name =
resourceURL, value = http://stuff.com
name = Extra, value =
^

QUESTION: I went through Ruby Standard Library and found some REXML
class-method, but I am not familiar with which one to use and how to use
them, yet.

google for rexml, and maybe look around for some XML posts that look
right and try and recreate them [?]

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