Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Converting HTML input data to pre-format XML data

Reply
Thread Tools

Converting HTML input data to pre-format XML data

 
 
Elijah Odumosu
Guest
Posts: n/a
 
      04-29-2008
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.
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
 
Roger Pack
Guest
Posts: n/a
 
      04-29-2008
google for rexml, and maybe look around for some XML posts that look
right and try and recreate them [?]

On Tue, Apr 29, 2008 at 11:31 AM, Elijah Odumosu <(E-Mail Removed)> wrote:
> 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.
> --
> Posted via http://www.ruby-forum.com/.
>
>


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Problem to insert an XML-element by XSLT-converting from one XML-file into another XML-file jkflens XML 2 05-30-2006 09:41 AM
logic for converting data obtained from input Nishant C++ 1 04-10-2006 12:39 PM
logic for converting data obtained from input Nish Java 2 04-10-2006 08:17 AM
hide the input box or change the color of input box in html ashutosh Java 3 06-16-2005 02:21 PM
[ANN] deplate 0.7.1 - A tool for converting documents written inan unobtrusive, wiki-like markup to LaTeX, HTML, "HTML slides", or DocBook Thomas Ruby 0 03-03-2005 06:36 PM



Advertisments