From: Elijah Odumosu Date: 2008-04-30T02:31:05+09:00 Subject: 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 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
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. -- Posted via http://www.ruby-forum.com/.