ok, the problem is xmlsize which is set to 1, thats why you get one result
set.

Here is what I used xmlsize =
(xmlfile.HotelAvailabilityListResults..XmlAttributes.size);
//HotelAvailabilityListResults is the parent tree

Full code here. FYI, the valueadds is not available in all elements so that
will throw error. I have commented that line.

Also, line 15 16 were giving errors so i had to modify little bit.

working code
<cfhttp url="
http://merchandising.expediaaffiliate.com/campaign/?campaignId=5409&cid=311009";
method="GET">

<cfscript>
    xmlfile = xmlparse(cfhttp.filecontent); //Parses the XML
    xmlsize = (xmlfile.HotelAvailabilityListResults.XmlAttributes.size);
//HotelAvailabilityListResults is the parent tree
    xmlqry = QueryNew("Hotelid, name, city, promodescription, valueadds,
displayroomrate"); //Sets a query for output
    QueryAddRow(xmlqry,xmlsize);

    for(a=1;a LTE xmlsize;a=a+1) {

//QuerySetCell(xmlqry,"hotelid",xmlfile.HotelAvailabilityListResults.hotel[a].xmlAttributes.hotelid,a);

//QuerySetCell(xmlqry,"hotelid",xmlfile.HotelAvailabilityListResults.hotel[a].hotelid.xmlText,a);
        //xmlfile.Tutorials.TutorialID[a].Title.xmlText gets the text of the
title for the current tutorial (xmlText)

QuerySetCell(xmlqry,"name",xmlfile.HotelAvailabilityListResults.hotel[a].name.xmlText,a);

QuerySetCell(xmlqry,"city",xmlfile.HotelAvailabilityListResults.hotel[a].city.xmlText,a);

QuerySetCell(xmlqry,"promodescription",xmlfile.HotelAvailabilityListResults.hotel[a].HotelProperty.promodescription.xmlText,a);

//QuerySetCell(xmlqry,"valueadds",xmlfile.HotelAvailabilityListResults.hotel[a].HotelProperty.valueadds.xmlText,a);

//QuerySetCell(xmlqry,"displayroomrate",xmlfile.HotelAvailabilityListResults.hotel.HotelProperty[a].xmlAttributes.id,a);
        //xmlfile.Tutorials.TutorialID[a].xmlAttributes.id gets the value of
the attribute in the tag
    }
</cfscript>


<cfdump var = "#xmlsize#">

<cfdump var = "#xmlqry#">

<cfquery name="tutorials" dbtype="query">
    SELECT        *
    FROM           xmlqry
    ORDER BY     hotelid DESC
</cfquery>


<cfoutput query="tutorials">
  #name# #promodescription#
    <br><br>
</cfoutput>

hope that helps. :-)
<Ajas Mohammed />
http://ajashadi.blogspot.com
We cannot become what we need to be, remaining what we are.
No matter what, find a way. Because thats what winners do.
You can't improve what you don't measure.
Quality is never an accident; it is always the result of high intention,
sincere effort, intelligent direction and skillful execution; it represents
the wise choice of many alternatives.


On Sat, Jan 15, 2011 at 10:57 AM, Michael Brown <[email protected]>wrote:

> Hey folks,
>
> Stuck on trying to get an XML query to display more than one record.  Can't
> figure out what I'm doing wrong.  There are 5 records in the file. The code
> is listed below, any suggestions would be helpful.
>
> Thanks
>
> <cfhttp url="
> http://merchandising.expediaaffiliate.com/campaign/?campaignId=5409&cid=311009";
> method="GET">
>
> <cfscript>
>     xmlfile = xmlparse(cfhttp.filecontent); //Parses the XML
>     xmlsize = arraylen(xmlfile.HotelAvailabilityListResults);
> //HotelAvailabilityListResults is the parent tree
>     xmlqry = QueryNew("Hotelid, name, city, promodescription, valueadds,
> displayroomrate"); //Sets a query for output
>     QueryAddRow(xmlqry,xmlsize);
>
>     for(a=1;a LTE xmlsize;a=a+1) {
>
> //QuerySetCell(xmlqry,"hotelid",xmlfile.HotelAvailabilityListResults.hotel[a].xmlAttributes.hotelid,a);
>
>  
> //QuerySetCell(xmlqry,"hotelid",xmlfile.HotelAvailabilityListResults.hotel[a].hotelid.xmlText,a);
>         //xmlfile.Tutorials.TutorialID[a].Title.xmlText gets the text of
> the title for the current tutorial (xmlText)
>
>  
> QuerySetCell(xmlqry,"name",xmlfile.HotelAvailabilityListResults.hotel[a].name.xmlText,a);
>
>  
> QuerySetCell(xmlqry,"city",xmlfile.HotelAvailabilityListResults.hotel[a].city.xmlText,a);
>
>  
> QuerySetCell(xmlqry,"promodescription",xmlfile.HotelAvailabilityListResults.hotel.HotelProperty[a].promodescription.xmlText,a);
>
>  
> QuerySetCell(xmlqry,"valueadds",xmlfile.HotelAvailabilityListResults.hotel.HotelProperty[a].valueadds.xmlText,a);
>
>  
> //QuerySetCell(xmlqry,"displayroomrate",xmlfile.HotelAvailabilityListResults.hotel.HotelProperty[a].xmlAttributes.id,a);
>         //xmlfile.Tutorials.TutorialID[a].xmlAttributes.id gets the value
> of the attribute in the tag
>     }
> </cfscript>
>
> <cfquery name="tutorials" dbtype="query">
>     SELECT        *
>     FROM           xmlqry
>     ORDER BY     hotelid DESC
> </cfquery>
>
>
> <cfoutput query="tutorials">
>   #name# #promodescription#
>     <br><br>
> </cfoutput>
>

Reply via email to