XMLSearch - Node Help
Hi Folks,
I've just recently started playing around with webservices and xml. I have however come across an xml file (returned via cfhttp) that has a totally different structure to every other I've worked with so far.
I'm struggling to figure out the correct syntax to use in order to loop through the elements I need.
Here's an excerpt from the XML being returned;
<Report xsi:schemaLocation="LeadBreakdown http://83.142.224.108/ReportServer$sql2005?%2fRelational+Reports%2fLeadBreakdown&rs%3aFormat=XML&rc%3aSchema=True" Name="LeadBreakdown">
−
<Report>
−
<Report_Group1_Collection>
−
<Report_Group1>
−
<Detail_Collection>
<Detail Row="1" TransactionId="7049681" UID="btpo-y-d" ClickTime="2009-06-26T15:00:49" TransactionTime="2009-06-26T16:28:51" MID="34221" Merchant="Goldsmiths" Product="Goldsmiths" PID="5698" TransactionValue="180" Status="Validated" AC="25.20" Completed="2009-06-26T16:28:51"/>
</Detail_Collection>
</Report_Group1>
−
<Report_Group1>
−
<Detail_Collection>
<Detail Row="2" TransactionId="7054422" UID="btpo-y-d" ClickTime="2009-06-27T14:53:43" TransactionTime="2009-06-27T15:27:29" MID="34221" Merchant="Goldsmiths" Product="Goldsmiths" PID="5698" TransactionValue="111.25" Status="Validated" AC="15.58" Completed="2009-06-27T15:27:29"/>
<Detail Row="3" TransactionId="7054422" UID="btpo-y-d" ClickTime="2009-06-27T14:53:43" TransactionTime="2009-06-27T15:27:29" MID="34221" Merchant="Goldsmiths" Product="Goldsmiths" PID="5698" TransactionValue="111.25" Status="Validated" AC="15.58" Completed="2009-06-27T15:27:29"/>
<Detail Row="4" TransactionId="7054422" UID="btpo-y-d" ClickTime="2009-06-27T14:53:43" TransactionTime="2009-06-27T15:27:29" MID="34221" Merchant="Goldsmiths" Product="Goldsmiths" PID="5698" TransactionValue="111.25" Status="Validated" AC="15.58" Completed="2009-06-27T15:27:29"/>
<Detail Row="5" TransactionId="7054422" UID="btpo-y-d" ClickTime="2009-06-27T14:53:43" TransactionTime="2009-06-27T15:27:29" MID="34221" Merchant="Goldsmiths" Product="Goldsmiths" PID="5698" TransactionValue="111.25" Status="Validated" AC="15.58" Completed="2009-06-27T15:27:29"/>
</Detail_Collection>
</Report_Group1>
</Report_Group1_Collection>
</Report>
</Report>
And this is the code I'm currently using (the bold part is what I'm struggling with - everything else is there for reference so you can get a better idea of what I'm trying to do);
<!--- Include the XSD DateConvert Function to convert the raw date/time sent back in the XML --->
<cfinclude template="../functions/xsddateconvert.cfm">
<cfhttp url="wsurl" method="GET" resolveurl="NO" throwonerror="yes"><cfhttpparam type="Header" name="Accept-Encoding" value="deflate;q=0"></cfhttp>
<cfscript>
xmlContent = XmlParse(REReplace( cfhttp.FileContent, "^[^<]*", "", "all" ));
xmlNode = xmlSearch(xmlContent, "//*[local-name()='Detail']");
</cfscript>
<!--- Table --->
<table cellpadding="5" width="100%">
<tr>
<td><b>Sale Date/Time</b></td>
<td><b><nobr>Programme Name</nobr></b></td>
<td><b>Commission</b></td>
<td><b>Clickref</b></td>
<td><b>EventID</b></td>
<td><b>Click Date/Time</b></td>
<td><b>Referrer</b></td>
</tr>
<tr>
<cfloop index="node" array="#xmlNode#">
<cfset date = #Node.TransactionTime.xmlText#>
<cfset programName = #Node.Merchant.xmlText#>
<cfset commission = #Node.AC.xmlText#>
<cfset clickref = #Node.UID.xmlText#>
<cfset eventID = #Node.TransactionId.xmlText#>
<cfset clickdate = #Node.ClickTime.xmlText#>
<cfset referrer = 'Not Passed'>
<cfoutput>
<td>#LSDateFormat(date, "dd/mm/yy")# #LSTimeFormat(date, "HH:mm")#</td>
<td>#programName#</td>
<td align="right">£#Numberformat(commission, 0.00)#</td>
<td>#clickref#</td></tr>
<td>#eventID#</td></tr>
<td>#LSDateFormat(clickdate, "dd/mm/yy")# #LSTimeFormat(clickdate, "HH:mm")#</td></tr>
<td>#referrer#</td></tr>
</cfoutput>
</cfloop>
</table>
I've been struggling with this since yesterday, so any help would be *very* appreciated ![]()
