[Ruby] Newby XML question
ben wiseley
wiseleyb at gmail.com
Sat Apr 28 07:23:45 PDT 2007
John,
They'll likely be sending this via a http post on a param. You probably
need to configure this on their end so give them a url to your controller (
http://mysite.com/webservices/index) and you'll need to know the param name
(which you can always figure out via "render :text => params.to_yaml" which
will show you all params sent. When you know the param name get the xml
value via a "xml = params[:some_param_name]"
Example:
class WebservicesController < ApplicationController
def index
render :text => params.to_yaml
# or
xml = params[:some_param_name]
#xml no contains the xml text which you can parse
end
end
You might want to look into rest examples.. which I think is the "right"
way to do this in Rails.
http://www.xml.com/pub/a/2006/04/19/rest-on-rails.html
-ben
On 4/27/07, John Chaffee <johnchaffee at mac.com> wrote:
>
> Hi,
>
> I'm a total newby to web development, let alone Ruby on Rails. So
> forgive me if this is a really dumb question.
>
> I'm trying to figure out how to accept an XML post to my Ruby on
> Rails app. Specifically, I'll be using eSellerate, an ecommerce
> provider, for my online sales, which will post XML Order Notices to
> my server whenever an order has been placed. The XML Order Notice
> will contain the order details, and I want to create a new record in
> my database from those details.
>
> A sample XML file is below. I think REXML will do what I need but all
> the examples I've found online show how to parse an XML file that
> resides on your desktop. What I need to know is how to parse an XML
> file that is being sent over the internet.
>
> Thanks,
> -John
>
> XML sample file
> ===============
>
> <?xml version = '1.0'?><MY_PRODUCTS> <SKU num="1">
> <SKU_NAME>PhotoFixR 1.0</SKU_NAME> <PUBLISHER_NAME>Acme Software
> Online</PUBLISHER_NAME> <SHORT_DESCRIPTION>Short description of
> PhotoFixR 1.0 goes here.</SHORT_DESCRIPTION>
> <LONG_DESCRIPTION>Long description of PhotoFixR 1.0 goes here.</
> LONG_DESCRIPTION> <EST> Hosted </EST> <PRICE>25</
> PRICE> <RATE>14</RATE> <RELEVANCE>Secondary</
> RELEVANCE> <PLATFORM>Windows</PLATFORM>
> <PRODUCT_IMAGE_URL>http://store.esellerate.net/store/img/usr/
> PUB12345678/SKU123456789/photofxrmain.jpg</PRODUCT_IMAGE_URL>
> <BUY_URL>http://store.eSellerate.net/a.asp?
> c=0_SKU123456789_AFL987654321&AT=TrackMe</BUY_URL>
> <MORE_INFO_URL>http://store.eSellerate.net/a.asp?
> c=1_SKU123456789_AFL987654321</MORE_INFO_URL>
> <CATALOG_URL>http://store.eSellerate.net/a.asp?
> c=2_SKU123456789_AFL987654321</CATALOG_URL>
> <ESELLERATE_HOSTED_URL>http://get.esellerate.net/get/est.aspx?
> c=123RU3TSUT&AT=TrackMe</ESELLERATE_HOSTED_URL>
> <FILESIZE>1383.33 Kb</FILESIZE> <LANDING_PAGES>
> <LANDING_PAGES_ROW num="1"> <LANDING_PAGE_URL>http://
> get.esellerate.net/get/ALP123456789/?
> skuid=SKU123456789&affid=AFL987654321&at=TrackMe&discountedp
> rice=20&couponid=bxg5off&discountamt=5&pt=PubTrack</
> LANDING_PAGE_URL> </LANDING_PAGES_ROW>
> <LANDING_PAGES_ROW num="2"> <LANDING_PAGE_URL>http://
> get.esellerate.net/get/ALP234567891/?
> skuid=SKU123456789&affid=AFL987654321&at=TrackMe&pt=pubtrack
> </LANDING_PAGE_URL> </LANDING_PAGES_ROW> </
> LANDING_PAGES> <CATEGORIES> <CATEGORIES_ROW
> num="1"> <CATEGORY>Pocket PC</CATEGORY>
> <SUBCATEGORY>Internet</SUBCATEGORY> </CATEGORIES_ROW> </
> CATEGORIES> </SKU> <SKU num="2"> <SKU_NAME>Great Product
> 2.0</SKU_NAME> <PUBLISHER_NAME>Generic Software Limited</
> PUBLISHER_NAME> <SHORT_DESCRIPTION>Short description of Great
> Product 2.0 goes here.</SHORT_DESCRIPTION>
> <LONG_DESCRIPTION>Long description of Great Product 2.0 goes here.</
> LONG_DESCRIPTION> <EST>None</EST> <PRICE>20</PRICE>
> <RATE>32</RATE> <RELEVANCE>Primary</RELEVANCE>
> <PLATFORM>Windows</PLATFORM> <PRODUCT_IMAGE_URL>http://
> store.esellerate.net/store/img/usr/PUB123123123/SKU12341234/
> GP122.jpg</PRODUCT_IMAGE_URL> <BUY_URL>http://
> store.eSellerate.net/a.asp?
> c=0_SKU12341234_AFL987654321&AT=TrackMe</BUY_URL>
> <MORE_INFO_URL>http://store.eSellerate.net/a.asp?
> c=1_SKU12341234_AFL987654321</MORE_INFO_URL> <CATALOG_URL>http://
> store.eSellerate.net/a.asp?c=2_SKU12341234_AFL987654321</
> CATALOG_URL> <ESELLERATE_HOSTED_URL> </
> ESELLERATE_HOSTED_URL> <FILESIZE>1522.11 Kb</FILESIZE>
> <LANDING_PAGES/> <CATEGORIES> <CATEGORIES_ROW
> num="1"> <CATEGORY>Audio</CATEGORY>
> <SUBCATEGORY>Personal Tech Solutions</SUBCATEGORY> </
> CATEGORIES_ROW> </CATEGORIES> </SKU> <SKU num="3">
> <SKU_NAME>Promotional Gift #1</SKU_NAME> <PUBLISHER_NAME>Acme
> Software Online</PUBLISHER_NAME> <SHORT_DESCRIPTION>Short
> description of Promotional Gift #1 goes here.</
> SHORT_DESCRIPTION> <LONG_DESCRIPTION>Long description of
> Promotional Gift #1 goes here.</LONG_DESCRIPTION> <EST> Hosted </
> EST> <PRICE>18</PRICE> <RATE>17</RATE>
> <RELEVANCE>Secondary</RELEVANCE> <PLATFORM>Windows</
> PLATFORM> <PRODUCT_IMAGE_URL>http://store.esellerate.net/store/
> img/usr/PUB12345678/SKU98764123/PG1520.jpg</PRODUCT_IMAGE_URL>
> <BUY_URL>http://store.eSellerate.net/a.asp?
> c=0_SKU98764123_AFL987654321&AT=TrackMe</BUY_URL>
> <MORE_INFO_URL>http://store.eSellerate.net/a.asp?
> c=1_SKU98764123_AFL987654321</MORE_INFO_URL> <CATALOG_URL>http://
> store.eSellerate.net/a.asp?c=2_SKU98764123_AFL987654321</
> CATALOG_URL> <ESELLERATE_HOSTED_URL>http://get.esellerate.net/
> get/est.aspx?c=FQF31A2ZJ2&AT=TrackMe</ESELLERATE_HOSTED_URL>
> <FILESIZE>1383.33 Kb</FILESIZE> <LANDING_PAGES/>
> <CATEGORIES> <CATEGORIES_ROW num="1">
> <CATEGORY>Audio</CATEGORY> <SUBCATEGORY>Music Creation</
> SUBCATEGORY> </CATEGORIES_ROW> </CATEGORIES> </SKU>
> <SKU num="4"> <SKU_NAME>Sounder 4.2</SKU_NAME>
> <PUBLISHER_NAME>Simple Equals Good</PUBLISHER_NAME>
> <LONG_DESCRIPTION>Long description of Sounder 4.2 goes here.</
> LONG_DESCRIPTION> <EST> Downloadable </EST> <PRICE>5</
> PRICE> <RATE>30</RATE> <RELEVANCE>Primary</RELEVANCE>
> <PLATFORM>Windows</PLATFORM> <PRODUCT_IMAGE_URL>http://
> store.esellerate.net/store/img/usr/PUB1234898/SKU1234588/
> SounderImg.jpg</PRODUCT_IMAGE_URL> <BUY_URL>http://
> store.eSellerate.net/a.asp?
> c=0_SKU1234588_AFL987654321&AT=TrackMe</BUY_URL>
> <MORE_INFO_URL>http://store.eSellerate.net/a.asp?
> c=1_SKU1234588_AFL987654321</MORE_INFO_URL> <CATALOG_URL>http://
> store.eSellerate.net/a.asp?c=2_SKU1234588_AFL987654321</
> CATALOG_URL> <ESELLERATE_HOSTED_URL> </
> ESELLERATE_HOSTED_URL> <FILESIZE>2221.52 Kb</FILESIZE>
> <LANDING_PAGES/> <CATEGORIES> <CATEGORIES_ROW
> num="1"> <CATEGORY>Audio</CATEGORY>
> <SUBCATEGORY>Players</SUBCATEGORY> </CATEGORIES_ROW>
> <CATEGORIES_ROW num="2"> <CATEGORY>Audio</
> CATEGORY> <SUBCATEGORY>Music Creation</
> SUBCATEGORY> </CATEGORIES_ROW> </CATEGORIES> </SKU></
> MY_PRODUCTS>
>
> _______________________________________________
> Ruby at zenspider.com - Seattle.rb non-commercial list
> http://www.zenspider.com/seattle.rb
> http://www.zenspider.com/mailman/listinfo/ruby
>
More information about the Ruby
mailing list