我正在使用ASP.NET 4.0制作的WCF并尝试在Coldfusion 9中使用结果数据。
使用以下代码,我能够返回看似是对象的内容,但不能将数据本身作为XML返回(正如我所料)。
<cfscript>
wcf2 = CreateObject("webservice","http://demo.opendrt.co.uk/Mobisoft.TAPIMobiRouter.WCF.Silver/MBRServices.svc?wsdl", "BasicHttpBinding_IMBRBookingServices");
variables.myResult2 = wcf2.GetPassengerBookings("Austin,Jason", "14/11/2010", "14/11/2012");
XMLContent = variables.myResult2.ResponseData.Booking;
</cfscript>
ResponseData的Booking元素包含多个条目,每个条目都包含其他数据,其中一些数据嵌套在预订的其他子项中。
XMLContent = variables.myResult2.ResponseData.getBooking(2).DropOffLocation.ShortName;
将单独返回该项的值,
XMLContent = variables.myResult2.ResponseData.getBooking(2).BookingPassengerInfo.PassengerRef;
是否可以将返回的数据作为一个整体使用,将其转换为Coldfusion中的记录集或类似内容,类似于:
<cfoutput query="XMLContent">
<h1>#PassengerRef#</h1>
<p>#ShortName#<p>
</cfoutput>
谢谢, 保罗
答案 0 :(得分:1)
我有一些有用的东西,是否是实现它的最经济的方法我不确定所以对任何其他想法持开放态度。
<cfscript>
wcf2 = CreateObject("webservice","http://demo.opendrt.co.uk/Mobisoft.TAPIMobiRouter.WCF.Silver/MBRServices.svc?wsdl", "BasicHttpBinding_IMBRBookingServices");
variables.myResult2 = wcf2.GetPassengerBookings("Austin,Jason", "14/11/2010", "14/11/2012");
bookings = variables.myResult2.ResponseData.Booking;
</cfscript>
<cfset result = QueryNew("BookingRef, PassengerRef, PickupDateTime","varchar, varchar, varchar")>
<cfloop from="1" to="#ArrayLen(bookings)#" index="i">
<!--- Add a row to the query.--->
<cfset QueryAddRow(result)>
<cfset QuerySetCell(result, "BookingRef", bookings[i].BookingRef)>
<cfset QuerySetCell(result, "PassengerRef", bookings[i].BookingPassengerInfo.PassengerRef)>
<cfset QuerySetCell(result, "PickupDateTime", bookings[i].PickupDateTime)>
</cfloop>
<table>
<tr>
<th>Booking Ref</th>
<th>Passenger Ref</th>
<th>PickupDateTime</th>
</tr>
<cfoutput query="result">
<tr>
<td>#BookingRef#</td>
<td>#PassengerRef#</td>
<td>#PickupDateTime#</td>
</tr>
</cfoutput>
</table>