Thanks you very much !!!

Yes your advice to use:

<cfif
structKeyExists(aTDWDoc.atdw_data_results.product_distribution[i].product_re
cord,'max_star_rating')>
  <!--- Do your stuff to the max star rating key in here --->
</cfif>

work a treat


Kind Regards



Claude Raiola (Director)
AustralianAccommodation.com Pty. Ltd.
Mobile: 0414 228 948
Fax: 07 3319 6444
Websites:
     www.AustralianAccommodation.com
<http://www.australianaccommodation.com/>
     www.AccommodationNewZealand.com
<http://www.accommodationnewzealand.com/>
     www.HospitalityPurchasing.net <http://www.hospitalitypurchasing.net/>
<mailto:[EMAIL PROTECTED]>



-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Stephen
Milligan
Sent: Saturday, 31 January 2004 11:30 AM
To: CFAussie Mailing List
Subject: [cfaussie] RE: How To Determining if specific Variable Arrays
exist


In short...

No!

There isn't any easier or shorter way to determine if an array element
exists.

If you try to access an undefined array element using any native ColdFusion
function an error will be thrown.

Having dealt with the ATDW feeds in the past, I know how much *fun* they can
be to deal with, but having read your original post again, my guess is that
what you want is not to test if an array element exists, but whether a key
in a structure nested in an array exists.

If that's the case then it's slightly simpler:

<cfif
structKeyExists(aTDWDoc.atdw_data_results.product_distribution[i].product_re
cord,'max_star_rating')>
  <!--- Do your stuff to the max star rating key in here --->
</cfif>

If you really want to know if element i exists in
ATDWDOc.atdw_data_results.product_distribution then you have to use the code
I posted earlier.

Spike

________________________________

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Claude Raiola
Sent: Friday, January 30, 2004 4:49 PM
To: CFAussie Mailing List
Subject: [cfaussie] RE: How To Determining if specific Variable Arrays exist


Thanks for all that assistance however is there some alternative way of
determining if a array element exists as I am trying to use this as part of
my xml input feed where the web service provider drops off an element if the
record does not have a value within that element

eg lets take a record for an accommodation house if accommodation house 1
provides their star rating then <star_rating>4</star_rating> is included in
the xml where as if the accommodation house has not provided a value for
star rating then the web services xml document does not even have the
<star_rating></star_rating> element in the xml for that record hence the
need to test the existence for every element I want to display the output
for with each record being passes surely there is an easier and quicker way
to determine if the element exists. ??







Kind Regards



Claude Raiola (Director)
AustralianAccommodation.com Pty. Ltd.
Mobile: 0414 228 948
Fax: 07 3319 6444
Websites:
     www.AustralianAccommodation.com
<http://www.australianaccommodation.com/>
     www.AccommodationNewZealand.com
<http://www.accommodationnewzealand.com/>
     www.HospitalityPurchasing.net <http://www.hospitalitypurchasing.net/>
<mailto:[EMAIL PROTECTED]>

        -----Original Message-----
        From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Stephen
Milligan
        Sent: Saturday, 31 January 2004 10:33 AM
        To: CFAussie Mailing List
        Subject: [cfaussie] RE: How To Determining if specific Variable
Arrays exist


        Not forgetting of course to replace the *ahem* deliberate line with
the re-declared local variable just after the opening <cftry> tag with this:

        <cfset tmp = arguments.array[arguments.element]>

        Spike

________________________________

        From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Stephen
Milligan
        Sent: Friday, January 30, 2004 4:18 PM
        To: CFAussie Mailing List
        Subject: [cfaussie] RE: How To Determining if specific Variable
Arrays exist


        The only reliable way to test if an array element exists is to put a
try/catch block around it:

        <cffunction name="isArrayElementDefined">
          <cfargument name="array" type="array" required="true">
          <cfargument name="element" type="numeric" required="true">
          <cfset var tmp = "">
          <cftry>
            <cfset var tmp = arguments.array[arguments.element]>
            <cfcatch>
              <cfreturn false>
            </cfcatch>
          </cftry>
          <cfreturn true>
        </cffunction>

        <cfset myArray = arrayNew(1)>
        <cfset myArray[1] = "foo">
        <cfset myArray[4] = "bar">

        <cfoutput>

          <cfloop from="1" to="#arrayLen(myArray)#" index="i">

          <br>
          <br>

          <cfif isArrayElementDefined(myArray,i)>
            Element #i# exists.
          <cfelse>
            Element #i# does not exist.
          </cfif>

          </cfloop>

        </cfoutput>

        Spike

________________________________

        From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Claude Raiola
        Sent: Friday, January 30, 2004 4:06 PM
        To: CFAussie Mailing List
        Subject: [cfaussie] RE: How To Determining if specific Variable
Arrays exist


        when I use the arraylen() function eg:

        <cfif
ArrayLen(aTDWDoc.atdw_data_results.product_distribution.product_record.max_s
tar_rating.XmlText) LTE i>

        generates the following error message

        (I need to include "product_record.max_star_rating" ) as that is the
specific array element I am testing for to see whether it exists hence the
reason for initially trying to use isdefined() function

        Object of type class java.lang.String cannot be used as an array

                The error occurred in
D:\inetpub\webhost\4301\www\aus\ATDW\query_products_26_01_04.cfm: line 60

                58 :       <cfset prodn = QuerySetCell(myquery,
"product_description",
aTDWDoc.atdw_data_results.product_distribution[i].product_record.product_des
cription.XmlText, i)>
        59 :      </cfif>
        60 :      <cfif
ArrayLen(aTDWDoc.atdw_data_results.product_distribution.product_record.max_s
tar_rating.XmlText) LTE i>
        61 :       <cfset prodn = QuerySetCell(myquery, "star_rating",
aTDWDoc.atdw_data_results.product_distribution[i].product_record.max_star_ra
ting.XmlText, i)>
        62 :      </cfif>







        Kind Regards



        Claude Raiola (Director)
        AustralianAccommodation.com Pty. Ltd.
        Mobile: 0414 228 948
        Fax: 07 3319 6444
        Websites:
             www.AustralianAccommodation.com
<http://www.australianaccommodation.com/>
             www.AccommodationNewZealand.com
<http://www.accommodationnewzealand.com/>
             www.HospitalityPurchasing.net
<http://www.hospitalitypurchasing.net/>
<mailto:[EMAIL PROTECTED]>

                        -----Original Message-----
                From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Steve Onnis
                Sent: Saturday, 31 January 2004 7:50 AM
                To: CFAussie Mailing List
                Subject: [cfaussie] RE: How To Determining if specific
Variable Arrays exist


                You cant use isDefined() for arrays

                You could try using ArrayLen

                so

                <cfif
ArrayLen(aTDWDoc.atdw_data_results.product_distribution) LTE i>
                <cfset prodn = QuerySetCell(myquery, "star_rating",
aTDWDoc.atdw_data_results.product_distribution[i].product_record.max_star_ra
ting.XmlText, i)>
                </cfif>

                That might do you

                Steve


                 -----Original Message-----
                From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Claude Raiola
                Sent: Saturday, 31 January 2004 4:47 AM
                To: CFAussie Mailing List
                Subject: [cfaussie] How To Determining if specific Variable
Arrays exist



                        I am trying to use the isdefined function to
determine with a variable within an array exists. The code is in bedded
within the cfloop with index=I

                        when using the syntax in line 60 below the following
error message occurs

                        wondering what is the correct syntax in order to be
able to determine whether specific variables within the are defined.

                        I look forward to your input


                        Parameter 1 of function IsDefined, which is now
&quot;aTDWDoc.atdw_data_results.product_distribution[i].product_record.max_s
tar_rating.XmlText&quot;, must be a syntactically valid variable name.




                        The error occurred in
D:\inetpub\webhost\4301\www\aus\ATDW\query_products_26_01_04.cfm: line 60

                                                60 :      <cfif
isdefined('aTDWDoc.atdw_data_results.product_distribution[i].product_record.
max_star_rating.XmlText')>
                        61 :       <cfset prodn = QuerySetCell(myquery,
"star_rating",
aTDWDoc.atdw_data_results.product_distribution[i].product_record.max_star_ra
ting.XmlText, i)>
                        62 :      </cfif>





                        Kind Regards



                        Claude Raiola (Director)
                        AustralianAccommodation.com Pty. Ltd.
                        Mobile: 0414 228 948
                        Fax: 07 3319 6444
                        Websites:
                             www.AustralianAccommodation.com
<http://www.australianaccommodation.com/>
                             www.AccommodationNewZealand.com
<http://www.accommodationnewzealand.com/>
                             www.HospitalityPurchasing.net
<http://www.hospitalitypurchasing.net/>
<mailto:[EMAIL PROTECTED]>


                        ---
                        You are currently subscribed to cfaussie as:
[EMAIL PROTECTED]
                        To unsubscribe send a blank email to
[EMAIL PROTECTED]
                        MXDU2004 + Macromedia DevCon AsiaPac + Sydney,
Australia
                        http://www.mxdu.com/ + 24-25 February, 2004

                ---
                You are currently subscribed to cfaussie as:
[EMAIL PROTECTED]
                To unsubscribe send a blank email to
[EMAIL PROTECTED]
                MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
                http://www.mxdu.com/ + 24-25 February, 2004

        ---
        You are currently subscribed to cfaussie as: [EMAIL PROTECTED]
        To unsubscribe send a blank email to
[EMAIL PROTECTED]
        MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
        http://www.mxdu.com/ + 24-25 February, 2004 ---
        You are currently subscribed to cfaussie as: [EMAIL PROTECTED]
        To unsubscribe send a blank email to
[EMAIL PROTECTED]
        MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
        http://www.mxdu.com/ + 24-25 February, 2004 ---
        You are currently subscribed to cfaussie as:
[EMAIL PROTECTED]
        To unsubscribe send a blank email to
[EMAIL PROTECTED]
        MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
        http://www.mxdu.com/ + 24-25 February, 2004

---
You are currently subscribed to cfaussie as: [EMAIL PROTECTED]
To unsubscribe send a blank email to
[EMAIL PROTECTED]
MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
http://www.mxdu.com/ + 24-25 February, 2004


---
You are currently subscribed to cfaussie as:
[EMAIL PROTECTED]
To unsubscribe send a blank email to
[EMAIL PROTECTED]

MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
http://www.mxdu.com/ + 24-25 February, 2004



---
You are currently subscribed to cfaussie as: [EMAIL PROTECTED]
To unsubscribe send a blank email to [EMAIL PROTECTED]

MXDU2004 + Macromedia DevCon AsiaPac + Sydney, Australia
http://www.mxdu.com/ + 24-25 February, 2004

Reply via email to