Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
Converting HTML input data to pre-format XML data
Elijah Odumosu
4/29/2008 5:31:00 PM
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:/...
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:/...
<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-...
.
1 Answer
Roger Pack
4/29/2008 6:57:00 PM
0
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 <eodumosu@gmail.com> 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:/...
> 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:/...
<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-...
.
>
>
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
Converting HTML input data to pre-format XML data
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password