The poster asked about getting a text value, so obviously he was using a xpath search that matched one value. So... don't do it on ones that would return multiple. You can use functions on multiple things though. For example:
<cfxml variable="test"> <employee> <salary>200</salary> <salary>100</salary> </employee> </cfxml> <cfset r = xmlSearch(test, "sum(//employee/salary)")> <cfdump var="#r#"> On Wed, Dec 7, 2011 at 4:06 PM, Judah McAuley <ju...@wiredotter.com> wrote: > > But what happens if there is more than one node that matches your > search? Searches expect to return one or more results, which is why > it returns an array. Trying to turn what may be a complex result into > a simple string with no logic seems like an unstable approach, unless > I'm misunderstanding the question (which happens plenty). > > Instead, I'd write a UDF called FirstXMLNodeText or some some such > that you pass an XPath value to along with an xml doc and then have it > return the XmlText of the first array result returned. > > What you are doing with the array is correct, in my opinion. If it is > too much typing and you are doing it a lot, build a function to do it. > > Cheers, > Judah > > On Wed, Dec 7, 2011 at 1:56 PM, Raymond Camden <raymondcam...@gmail.com> > wrote: >> >> You can use functions to get values: >> >> >> >> <cfxml variable="test"> >> <employee> >> <startDate>09-09-2009</startDate> >> </employee> >> </cfxml> >> >> <cfset r = xmlSearch(test, "string(//employee/startDate)")> >> <cfdump var="#r#"> >> >> Docs: http://www.w3schools.com/xpath/xpath_functions.asp#string >> >> On Wed, Dec 7, 2011 at 3:23 PM, Dominic Watson >> <watson.domi...@googlemail.com> wrote: >>> >>> It's getting old in the tooth and could do with some JavaLoader love, >>> but this project can help with that sorta thing: >>> >>> http://betterxml.riaforge.org >>> >>> Dominic >>> >>> On 7 December 2011 21:09, Christophe Maso <zum...@hotmail.com> wrote: >>>> >>>> Is there any way to get the "09-09-2009" string using xmlSearch() for the >>>> below xml? >>>> >>>> <employee> >>>> <startDate>09-09-2009</startDate> >>>> </employee> >>>> >>>> I've been doing something like this, which is a real pain: >>>> >>>> arrDate = xmlSearch(xml, "//employee/startDate"); >>>> strDate = arrDate[1].XmlText; >>>> >>>> It seems that xmlSearch() must always return an array and is unable to >>>> return a string, which makes sense, but using the above code has gotten >>>> old, real fast. >>>> >>>> >>> >>> >> >> > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:349018 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm