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

Reply via email to