[Ruby] Newby XML question

John Chaffee johnchaffee at mac.com
Fri Apr 27 20:30:35 PDT 2007


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&amp;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&amp;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&amp;affid=AFL987654321&amp;at=TrackMe&amp;discountedp 
rice=20&amp;couponid=bxg5off&amp;discountamt=5&amp;pt=PubTrack</ 
LANDING_PAGE_URL>         </LANDING_PAGES_ROW>          
<LANDING_PAGES_ROW num="2">            <LANDING_PAGE_URL>http:// 
get.esellerate.net/get/ALP234567891/? 
skuid=SKU123456789&amp;affid=AFL987654321&amp;at=TrackMe&amp;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&amp;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&amp;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&amp;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&amp;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>



More information about the Ruby mailing list