I've kind of solved my problem with the following xPath selector in my
xPathString:

<cfset YearNodes = XmlSearch(xmlData,"//*[local-name()='year']/")/>

This allows me to reference YearNodes[i].XmlText which contains the actual
string of data that I want. This seems kinda hokey to me though. I'd like to
just get back an array of years (2010,2009,2008,... etc.)

Also, I'm not too pleased that it seems so damned difficult to do it "the
easy way" by letting CF do all the soap stuff for me with
CreateObject("webservice",
"https://blah.com/blah.aspx?wsdl";). It seems like that should work, but all
I get back are a bunch of stub methods that I don't know how to use, and on
which I cannot seem to find proper documentation that is actually of any
help at all.

I totally feel let down by ColdFusion in this instance. :o(


On Fri, Jan 23, 2009 at 12:31 PM, Chris Jordan <[email protected]>wrote:

> I've got a SOAP response in xml format, and I need to know how to traverse
> it. I found that I should be able to use XmlSearch(xmlDoc, xPathString) to
> return an array of nodes, but this just isn't working for me.
>
> <cfsavecontent variable="soapRequest">
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:used="http://localhost/webservices/UsedCarWS";>
>    <soapenv:Header>
>       <used:UserCredentials>
>          <!--Optional:-->
>          <used:userid>xxxxx</used:userid>
>          <!--Optional:-->
>          <used:password>xxxxx</used:password>
>          <!--Optional:-->
>          <used:producttype>W</used:producttype>
>       </used:UserCredentials>
>    </soapenv:Header>
>    <soapenv:Body>
>       <used:Years>
>          <!--Optional:-->
>          <used:sCountryCode>U</used:sCountryCode>
>       </used:Years>
>    </soapenv:Body>
> </soapenv:Envelope>
> </cfsavecontent>
>
> <cfhttp url="https://www.blackbookws.com/UsedCarWS.asmx?WSDL";
> method="POST" resolveurl="NO" useragent="Axis/1.1">
>     <cfhttpparam type="xml" name="body" value="#soapRequest#">
> </cfhttp>
>
> <cfset soapresponse = XMLParse(cfhttp.FileContent) />
> <cfset YearNodes =
> xmlSearch(soapresponse,"/Envelope/Body/YearsResponse/YearsResult/diffgram/modelyears/years/year/XmlText")>
>
> <cfdump var="#YearNodes#">
> <cfdump var="#soapresponse#">
>
> The dump of soapresponse shows me the structure of the xmlDocument, but
> the dump of YearNodes just isn't working. It's always empty. What could I
> be doing wrong?
>
> Thanks,
> Chris
>
> --
> http://cjordan.us
>



-- 
http://cjordan.us


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;207172674;29440083;f

Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:318448
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4

Reply via email to