Converting HTML input data to pre-format XML data

E

Elijah Odumosu

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}<br/>"
}


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 Doe
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<br/>name = ScoutArea,
value = Add New Resource<br/>name = FriendlyResponse, value = 1<br/>name
= ForceNewBug, value = 1<br/>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.<br/>name =
resourceURL, value = http://stuff.com<br/>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.
 
R

Roger Pack

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top