Server Time: Sunday May 11 2008 08:09 PM |
|
Your Time: |
9 Day Weather Forecast
| soxml.cfm (Download the entire soxml custom tag - Read the forum thread on this tutorial) |
<cfsetting enablecfoutputonly="Yes">
<!---
Custom Tag: SOXML;
Version: 1.6;
Released: 5/24/2001;
Created: 8/18/2000;
Author: Brett Suwyn; mailto:brett@suwyn.com
Description:
This tag is a simple to use XML interface for ColdFusion;
Usage:
<cf_SOXML
action="CF2XMLDom|CF2XML|XML2CF|XML2DOM|XML2HTML"
input="" [required:all actions]
output="" [required:CF2XMLDom|CF2XML|XML2CF|XML2DOM]
type="" [required:XML2CF|XML2DOM]
rootname="" [required:CF2XMLDom|CF2XML]
progid="" [optional]
>
Modifications:
5/20/2001: Fixed problems with returning object from Transform action
12/18/2000: Added Transform action;
12/18/2000: Tweaked XML2HTML code;
10/23/2000: Fixed loss of root level name when using XML2CF;
--->
<cfparam name="Attributes.ProgId" default="Microsoft.XMLDom">
<cfswitch expression="#Attributes.Action#">
<!--- ~~~CF2XMLDOM~~~ --->
<!--- Build XML Dom object --->
<!--- ~~~~~~~~~~~~~~ --->
<cfcase value="CF2XMLDOM">
<cfparam name="Attributes.Init" default="1">
<cfif Attributes.Init>
<cfparam name="Attributes.Output" type="string">
<cfparam name="Attributes.Input">
<cfparam name="Attributes.RootName" default="ROOT">
<cfparam name="Attributes.StandAlone" default="">
<cfparam name="Attributes.Encoding" default="">
<cfobject action="CREATE" class="#Attributes.ProgId#" type="COM" name="Request.XMLDoc">
<cfscript>
Request.XMLDoc.async = 0;
Request.XMLDoc.loadXML("<?xml version=""1.0""" & IIf(Len(Attributes.Encoding),DE("encoding=" & Chr(34) & Attributes.Encoding & Chr(34)),DE("")) & IIf(Len(Attributes.StandAlone),DE("standalone=" & Chr(34) & LCase(YesNoFormat(Attributes.StandAlone)) & Chr(34)),DE("")) & "?>" & "<" & UCase(Attributes.RootName) & ">" & "</" & UCase(Attributes.RootName) & ">");
Attributes.Node = Request.XMLdoc.documentElement;
oParseError = Request.XMLDoc.ParseError;
</cfscript>
<!--- if DOM error throw an exception --->
<cfif oParseError.ErrorCode>
<cfthrow type="SOXML.ParseError" message="DOM Error" detail="#oParseError.Reason# | Line:#oParseError.Line#">
</cfif>
</cfif>
<cfif isStruct(Attributes.Input)>
<cfloop collection="#Attributes.Input#" item="Key">
<cfscript>
ndKey = Request.xmlDoc.createNode (1, UCase(Key),"");
Attributes.Node.appendChild(ndKey);
vCurrent = Attributes.Input[Key];
</cfscript>
<cf_SOXML action="CF2XMLDOM" init="0" input="#vCurrent#" node="#ndKey#">
</cfloop>
<cfelseif isQuery(Attributes.Input)>
<cfloop query="Attributes.Input">
<cfscript>
ndRow = Request.xmlDoc.createNode (1, "ROW","");
Attributes.Node.appendChild(ndRow);
</cfscript>
<cfloop index="idx" list="#Attributes.Input.ColumnList#">
<cfscript>
ndColumn = Request.xmlDoc.createNode (1, UCase(idx),"");
ndRow.appendChild(ndColumn);
</cfscript>
<cf_SOXML action="CF2XMLDOM" init="0" input="#Evaluate(idx)#" node="#ndColumn#">
</cfloop>
</cfloop>
<cfelseif isArray(Attributes.Input)>
<cfloop index="idx" from="1" to="#ArrayLen(Attributes.Input)#">
<cfscript>
ndArray = Request.xmlDoc.createNode (1, "IDX","");
Attributes.Node.appendChild(ndArray);
</cfscript>
<cf_SOXML action="CF2XMLDOM" init="0" input="#Attributes.Input[idx]#" node="#ndArray#">
</cfloop>
<cfelseif isSimpleValue(Attributes.Input)>
<cfscript>
if (ReFind("<|>|&|'|""",Attributes.Input))
ndSimple = Request.xmlDoc.createNode(4, "", "");
else
ndSimple = Request.xmlDoc.createNode(3, "", "");
ndSimple.text = Attributes.Input;
Attributes.Node.appendChild(ndSimple);
</cfscript>
</cfif>
<cfscript>
if (Attributes.Init){
SetVariable("Caller."&Attributes.Output,Request.XMLDoc);
}
</cfscript>
</cfcase>
<!--- ~~~CF2XML~~~ --->
<!--- Build XML string --->
<!--- ~~~~~~~~~~~ --->
<cfcase value="CF2XML">
<cfparam name="Attributes.Input">
<cfparam name="Attributes.Init" default="1">
<cfparam name="Attributes.RootName" default="ROOT">
<cfif Attributes.Init>
<cfparam name="Attributes.Output" type="string">
<cfparam name="Attributes.StandAlone" default="">
<cfparam name="Attributes.Encoding" default="">
<cfset Request.XMLDoc = "<?xml version=""1.0""" & IIf(Len(Attributes.Encoding),DE(" encoding=" & Chr(34) & Attributes.Encoding & Chr(34)),DE("")) & IIf(Len(Attributes.StandAlone),DE(" standalone=" & Chr(34) & LCase(YesNoFormat(Attributes.StandAlone)) & Chr(34)),DE("")) & "?>" & "<" & UCase(Attributes.RootName) & ">">
</cfif>
<cfif isStruct(Attributes.Input)>
<cfloop collection="#Attributes.Input#" item="Key">
<cfset Request.XMLDoc = Request.XMLDoc & "<" & Key & ">">
<cf_SOXML action="CF2XML" init="0" input="#Attributes.Input[Key]#">
<cfset Request.XMLDoc = Request.XMLDoc & "</" & Key & ">">
</cfloop>
<cfelseif isQuery(Attributes.Input)>
<cfloop query="Attributes.Input">
<cfset Request.XMLDoc = Request.XMLDoc & "<ROW>">
<cfloop index="idx" list="#Attributes.Input.ColumnList#">
<cfset Request.XMLDoc = Request.XMLDoc & "<" & idx & ">">
<cf_SOXML action="CF2XML" init="0" input="#Evaluate(idx)#">
<cfset Request.XMLDoc = Request.XMLDoc & "</" & idx & ">">
</cfloop>
<cfset Request.XMLDoc = Request.XMLDoc & "</ROW>">
</cfloop>
<cfelseif isArray(Attributes.Input)>
<cfloop index="idx" from="1" to="#ArrayLen(Attributes.Input)#">
<cfset Request.XMLDoc = Request.XMLDoc & "<IDX>">
<cf_SOXML action="CF2XML" init="0" input="#Attributes.Input[idx]#">
<cfset Request.XMLDoc = Request.XMLDoc & "</IDX>">
</cfloop>
<cfelseif isSimpleValue(Attributes.Input)>
<cfscript>
if (ReFind("<|>|&|'|""", Attributes.Input))
Request.XMLDoc = Request.XMLDoc & "<![CDATA[" & Attributes.Input & "]]>";
else
Request.XMLDoc = Request.XMLDoc & Attributes.Input;
</cfscript>
</cfif>
<cfscript>
if (Attributes.Init){
Request.XMLDoc = Request.XMLDoc & "</" & UCase(Attributes.RootName) & ">";
SetVariable("Caller."&Attributes.Output ,Request.XMLDoc);
}
</cfscript>
</cfcase>
<!--- ~~~~~XML2CF~~~~~~~ --->
<!--- Build CF object from XML --->
<!--- ~~~~~~~~~~~~~~~~ --->
<cfcase value="XML2CF">
<cfparam name="Attributes.Init" default="1">
<cfif Attributes.Init>
<cfparam name="Attributes.Input">
<cfparam name="Attributes.Output" default="Struct">
<cfparam name="Attributes.Type" default="Variable">
<cfobject action="CREATE" class="#Attributes.ProgId#" type="COM" name="XMLDoc">
<cfscript>
XMLDoc.async = 0;
if (Attributes.Type eq "File")
XMLDoc.Load(Attributes.Input);
else
XMLDoc.loadXML(Attributes.Input);
oParseError = XMLDoc.ParseError;
</cfscript>
<!--- if DOM error throw an exception --->
<cfif oParseError.ErrorCode>
<cfthrow type="SOXML.ParseError" message="DOM Error" detail="#oParseError.Reason# | Line:#oParseError.Line#">
</cfif>
<cfscript>
Attributes.Node = XMLDoc;
Attributes.Struct = StructNew();
</cfscript>
</cfif>
<cfloop collection="#Attributes.Node.childNodes#" item="ThisNode">
<cfswitch expression="#ThisNode.NodeType#">
<cfcase value="1">
<cfset CurrentNode = StructNew()> <!--- initialize node structure --->
<!--- Write Attributes to Structure --->
<cfset CurrentNode["Attributes"] = StructNew()>
<cfloop collection="#ThisNode.Attributes#" item="ThisAttribute">
<cfset CurrentNode.Attributes[ThisAttribute.Name] = ThisAttribute.Value>
</cfloop>
<cfif StructIsEmpty(CurrentNode["Attributes"])>
<cfset StructDelete(CurrentNode,"Attributes")>
</cfif>
<!--- Write current node to Structure --->
<cfscript>
if(isArray(Attributes.Struct)) // Currently part of a collection
Attributes.Struct[ArrayLen(Attributes.Struct)+1] = CurrentNode;
else if(structKeyExists(Attributes.Struct,ThisNode.NodeName)){ // Duplicate keys found
if (isArray(Attributes.Struct[ThisNode.NodeName])) // Collection already exists
Attributes.Struct[ThisNode.NodeName][ArrayLen(Attributes.Struct[ThisNode.NodeName])+1] = CurrentNode;
else{ // Create new collection
TempCollection = ArrayNew(1);
TempCollection[1] = Attributes.Struct[ThisNode.NodeName];
TempCollection[2] = CurrentNode;
Attributes.Struct[ThisNode.NodeName] = TempCollection;
}
}else // Single element
Attributes.Struct[ThisNode.NodeName] = CurrentNode;
</cfscript>
<!--- Recurse if children nodes exist --->
<cfif ThisNode.hasChildNodes()>
<cf_SOXML action="XML2CF" init="0" struct="#CurrentNode#" node="#ThisNode#">
<cfelse>
<cfset CurrentNode.Value = "">
</cfif>
</cfcase>
<cfcase value="3,4">
<cfset Attributes.Struct.Value = ThisNode.NodeValue>
</cfcase>
<cfcase value="8">
<cfset Attributes.Struct.Comment = ThisNode.NodeValue>
</cfcase>
</cfswitch>
</cfloop>
<cfif Attributes.Init>
<!--- Return the new structure to the calling template --->
<cfset "Caller.#Attributes.Output#"= Attributes.Struct>
</cfif>
</cfcase>
<!--- ~~~~~XML2DOM~~~~ --->
<!--- Loads XML into DOM --->
<!--- ~~~~~~~~~~~~~~~~ --->
<cfcase value="XML2DOM">
<cfparam name="Attributes.Input">
<cfparam name="Attributes.Output">
<cfparam name="Attributes.Type" default="Variable">
<cfobject action="CREATE" class="#Attributes.ProgId#" type="COM" name="XMLDoc">
<cfscript>
XMLDoc.async = 0;
if (Len(Attributes.Input)) {
if (Attributes.Type eq "File")
XMLDoc.Load(Attributes.Input);
else
XMLDoc.loadXML(Attributes.Input);
}
oParseError = XMLDoc.ParseError;
</cfscript>
<cfif oParseError.ErrorCode>
<cfthrow type="SOXML.ParseError" message="DOM Error" detail="#oParseError.Reason# | Line:#oParseError.Line#">
</cfif>
<cfset "Caller.#Attributes.Output#"= XMLDoc>
</cfcase>
<!--- ~~~~~Transform~~~~~~~~~~~~ --->
<!--- Transforms XML from XSL Template --->
<!--- ~~~~~~~~~~~~~~~~~~~~~~~~ --->
<cfcase value="Transform">
<cfparam name="Attributes.Input">
<cfparam name="Attributes.Type" default="Variable">
<cfparam name="Attributes.XSLInput">
<cfparam name="Attributes.XSLType" default="File">
<cfparam name="Attributes.Output">
<cfparam name="Attributes.r_Type" default="Text">
<!--- Load the XSL Document --->
<cf_SOXML action="XML2DOM" progid="#Attributes.ProgId#" input="#Attributes.XSLInput#" output="XSLDoc" type="#Attributes.XSLType#">
<!--- Load the XML Document --->
<cf_SOXML action="XML2DOM" progid="#Attributes.ProgId#" input="#Attributes.Input#" output="XMLDoc" type="#Attributes.Type#">
<cfif Attributes.r_Type EQ "Object">
<!--- Create a result xml DOM object --->
<cf_SOXML action="XML2DOM" progid="#Attributes.ProgId#" input="" output="oResult">
<cfscript>»// Do the transformation
XMLDoc.transformNodeToObject(XSLDoc,oResult);
"Caller.#Attributes.Output#" = oResult;
</cfscript>
<cfelse>
<cfscript>»// Do the transformation
sResult = XMLDoc.transformNode(XSLDoc);
"Caller.#Attributes.Output#" = sResult;
</cfscript>
</cfif>
</cfcase>
<!--- ~~~~~XML2HTML~~~~~~~ --->
<!--- Output XML to HTML inline --->
<!--- ~~~~~~~~~~~~~~~~~~~ --->
<cfcase value="XML2HTML">
<cfparam name="Attributes.Input">
<cfparam name="Attributes.Type" default="Variable">
<cf_SOXML action="Transform" input="#Attributes.Input#" type="#Attributes.Type#" xslinput="http://www.siteobjects.com/downloads/soxml.xsl" xsltype="File" output="strValue" r_type="Text">
<cfoutput>#strValue#</cfoutput>
</cfcase>
<!--- ~~INVALID ACTION~~ --->
<!--- Throw error --->
<!--- ~~~~~~~~~~~~~~~ --->
<cfdefaultcase>
<cfthrow type="SOXML.Error" message="cf_SOXML Error" detail="Invalid action">
</cfdefaultcase>
</cfswitch>
<cfsetting enablecfoutputonly="No">
|
| weather.cfm |
<!--- Set the ZIP Code below --->
<cfset strZIP = "75460">
<!--- The below line will set the directory to get the XMl --->
<cfset sCurrentDirectory = GetDirectoryFromPath(CGI.Path_Translated)>
<!--- Retrieve the XML for the forecast --->
<cfhttp url="http://www.ejse.com/WeatherService/Service.asmx/GetNineDayForecastInfo?zipCode=#strZIP#"
method="GET"
path="#Left(sCurrentDirectory, Len(sCurrentDirectory)-1)#"
file="#strZIP#.xml"
resolveurl="false"></cfhttp>
<cfoutput>#sCurrentDirectory#</cfoutput>
<cf_SOXML
action="XML2CF"
input="#sCurrentDirectory##strZIP#.xml"
output="Forecast"
type="file">
<cfset sDay=ArrayNew(1)>
<cfset sDate=ArrayNew(1)>
<cfset sForecast=ArrayNew(1)>
<cfset sHigh=ArrayNew(1)>
<cfset sLow=ArrayNew(1)>
<cfscript>
//Day1
sDay[1] = Forecast.NineDayForecastInfo.Day1.Day.Value;
sDay[1] = Replace(sDay[1], "Sun", "Sunday");
sDay[1] = Replace(sDay[1], "Mon", "Monday");
sDay[1] = Replace(sDay[1], "Tue", "Tuesday");
sDay[1] = Replace(sDay[1], "Wed", "Wednesday");
sDay[1] = Replace(sDay[1], "Thu", "Thursday");
sDay[1] = Replace(sDay[1], "Fri", "Friday");
sDay[1] = Replace(sDay[1], "Sat", "Saturday");
sDate[1] = Forecast.NineDayForecastInfo.Day1.Date.Value;
sForecast[1] = Forecast.NineDayForecastInfo.Day1.Forecast.Value;
sHigh[1] = Forecast.NineDayForecastInfo.Day1.High.Value;
sLow[1] = Forecast.NineDayForecastInfo.Day1.Low.Value;
//Day2
sDay[2] = Forecast.NineDayForecastInfo.Day2.Day.Value;
sDay[2] = Replace(sDay[2], "Sun", "Sunday");
sDay[2] = Replace(sDay[2], "Mon", "Monday");
sDay[2] = Replace(sDay[2], "Tue", "Tuesday");
sDay[2] = Replace(sDay[2], "Wed", "Wednesday");
sDay[2] = Replace(sDay[2], "Thu", "Thursday");
sDay[2] = Replace(sDay[2], "Fri", "Friday");
sDay[2] = Replace(sDay[2], "Sat", "Saturday");
sDate[2] = Forecast.NineDayForecastInfo.Day2.Date.Value;
sForecast[2] = Forecast.NineDayForecastInfo.Day2.Forecast.Value;
sHigh[2] = Forecast.NineDayForecastInfo.Day2.High.Value;
sLow[2] = Forecast.NineDayForecastInfo.Day2.Low.Value;
//Day3
sDay[3] = Forecast.NineDayForecastInfo.Day3.Day.Value;
sDay[3] = Replace(sDay[3], "Sun", "Sunday");
sDay[3] = Replace(sDay[3], "Mon", "Monday");
sDay[3] = Replace(sDay[3], "Tue", "Tuesday");
sDay[3] = Replace(sDay[3], "Wed", "Wednesday");
sDay[3] = Replace(sDay[3], "Thu", "Thursday");
sDay[3] = Replace(sDay[3], "Fri", "Friday");
sDay[3] = Replace(sDay[3], "Sat", "Saturday");
sDate[3] = Forecast.NineDayForecastInfo.Day3.Date.Value;
sForecast[3] = Forecast.NineDayForecastInfo.Day3.Forecast.Value;
sHigh[3] = Forecast.NineDayForecastInfo.Day3.High.Value;
sLow[3] = Forecast.NineDayForecastInfo.Day3.Low.Value;
//Day4
sDay[4] = Forecast.NineDayForecastInfo.Day4.Day.Value;
sDay[4] = Replace(sDay[4], "Sun", "Sunday");
sDay[4] = Replace(sDay[4], "Mon", "Monday");
sDay[4] = Replace(sDay[4], "Tue", "Tuesday");
sDay[4] = Replace(sDay[4], "Wed", "Wednesday");
sDay[4] = Replace(sDay[4], "Thu", "Thursday");
sDay[4] = Replace(sDay[4], "Fri", "Friday");
sDay[4] = Replace(sDay[4], "Sat", "Saturday");
sDate[4] = Forecast.NineDayForecastInfo.Day4.Date.Value;
sForecast[4] = Forecast.NineDayForecastInfo.Day4.Forecast.Value;
sHigh[4] = Forecast.NineDayForecastInfo.Day4.High.Value;
sLow[4] = Forecast.NineDayForecastInfo.Day4.Low.Value;
//Day5
sDay[5] = Forecast.NineDayForecastInfo.Day5.Day.Value;
sDay[5] = Replace(sDay[5], "Sun", "Sunday");
sDay[5] = Replace(sDay[5], "Mon", "Monday");
sDay[5] = Replace(sDay[5], "Tue", "Tuesday");
sDay[5] = Replace(sDay[5], "Wed", "Wednesday");
sDay[5] = Replace(sDay[5], "Thu", "Thursday");
sDay[5] = Replace(sDay[5], "Fri", "Friday");
sDay[5] = Replace(sDay[5], "Sat", "Saturday");
sDate[5] = Forecast.NineDayForecastInfo.Day5.Date.Value;
sForecast[5] = Forecast.NineDayForecastInfo.Day5.Forecast.Value;
sHigh[5] = Forecast.NineDayForecastInfo.Day5.High.Value;
sLow[5] = Forecast.NineDayForecastInfo.Day5.Low.Value;
//Day6
sDay[6] = Forecast.NineDayForecastInfo.Day6.Day.Value;
sDay[6] = Replace(sDay[6], "Sun", "Sunday");
sDay[6] = Replace(sDay[6], "Mon", "Monday");
sDay[6] = Replace(sDay[6], "Tue", "Tuesday");
sDay[6] = Replace(sDay[6], "Wed", "Wednesday");
sDay[6] = Replace(sDay[6], "Thu", "Thursday");
sDay[6] = Replace(sDay[6], "Fri", "Friday");
sDay[6] = Replace(sDay[6], "Sat", "Saturday");
sDate[6] = Forecast.NineDayForecastInfo.Day6.Date.Value;
sForecast[6] = Forecast.NineDayForecastInfo.Day6.Forecast.Value;
sHigh[6] = Forecast.NineDayForecastInfo.Day6.High.Value;
sLow[6] = Forecast.NineDayForecastInfo.Day6.Low.Value;
//Day7
sDay[7] = Forecast.NineDayForecastInfo.Day7.Day.Value;
sDay[7] = Replace(sDay[7], "Sun", "Sunday");
sDay[7] = Replace(sDay[7], "Mon", "Monday");
sDay[7] = Replace(sDay[7], "Tue", "Tuesday");
sDay[7] = Replace(sDay[7], "Wed", "Wednesday");
sDay[7] = Replace(sDay[7], "Thu", "Thursday");
sDay[7] = Replace(sDay[7], "Fri", "Friday");
sDay[7] = Replace(sDay[7], "Sat", "Saturday");
sDate[7] = Forecast.NineDayForecastInfo.Day7.Date.Value;
sForecast[7] = Forecast.NineDayForecastInfo.Day7.Forecast.Value;
sHigh[7] = Forecast.NineDayForecastInfo.Day7.High.Value;
sLow[7] = Forecast.NineDayForecastInfo.Day7.Low.Value;
//Day8
sDay[8] = Forecast.NineDayForecastInfo.Day8.Day.Value;
sDay[8] = Replace(sDay[8], "Sun", "Sunday");
sDay[8] = Replace(sDay[8], "Mon", "Monday");
sDay[8] = Replace(sDay[8], "Tue", "Tuesday");
sDay[8] = Replace(sDay[8], "Wed", "Wednesday");
sDay[8] = Replace(sDay[8], "Thu", "Thursday");
sDay[8] = Replace(sDay[8], "Fri", "Friday");
sDay[8] = Replace(sDay[8], "Sat", "Saturday");
sDate[8] = Forecast.NineDayForecastInfo.Day8.Date.Value;
sForecast[8] = Forecast.NineDayForecastInfo.Day8.Forecast.Value;
sHigh[8] = Forecast.NineDayForecastInfo.Day8.High.Value;
sLow[8] = Forecast.NineDayForecastInfo.Day8.Low.Value;
//Day9 (finally )
sDay[9] = Forecast.NineDayForecastInfo.Day7.Day.Value;
sDay[9] = Replace(sDay[9], "Sun", "Sunday");
sDay[9] = Replace(sDay[9], "Mon", "Monday");
sDay[9] = Replace(sDay[9], "Tue", "Tuesday");
sDay[9] = Replace(sDay[9], "Wed", "Wednesday");
sDay[9] = Replace(sDay[9], "Thu", "Thursday");
sDay[9] = Replace(sDay[9], "Fri", "Friday");
sDay[9] = Replace(sDay[9], "Sat", "Saturday");
sDate[9]= Forecast.NineDayForecastInfo.Day9.Date.Value;
sForecast[9] = Forecast.NineDayForecastInfo.Day9.Forecast.Value;
sHigh[9] = Forecast.NineDayForecastInfo.Day9.High.Value;
sLow[9] = Forecast.NineDayForecastInfo.Day9.Low.Value;
</cfscript>
<cfloop from="1" to="9" index="i">
<cfoutput>
<table width=180 style="border: 1px solid black" cellpadding=1 cellspacing=1>
<tr>
<td align="center" bgcolor="ff0000">
<font color="ffffff"><b>#sDay[i]#</b></font>
</td>
</tr>
<tr>
<td bgcolor="ffffff">
<center><font size=1 face="Verdana"><b>#sForecast[i]#</b></font></center>
<br><br>
<font size=2 face="Verdana">
Date: <b>#sDate[i]#, #DateFormat(Now(), "yyyy")#</b><br>
High: <b>#sHigh[i]# F</b><br>
Low: <b>#sLow[i]# F</b>
</td>
</tr>
</table>
<br>
</cfoutput>
</cfloop>
|
Questions, Bugs, and all other reports should be sent to Drew Tempelmeyer.
Thanks goes to:
Pablo, CJ (for the URL of the XML feed), and everyone else that reported that it wouldn't work. Thanks for your encouragement.
Date added: Fri. May 16, 2003
Posted by: Drew Tempelmeyer | Views: 15911 | Tested Platforms: CF5,CFMX | Difficulty: Intermediate
Best Practices
Creating Static HTML Pages from Dynamic Pages
Static HTML can help reduce the load on the server. This helps resources be used for other things that you may possibly need. Creating static HTML in ColdFusion is a simple task and can simply be done by following this tutorial. - Date added: Thu. March 31, 2005
Parsing XML With ColdFusion MX
Want to know how to parse XML with ColdFusion with ease and very basic concepts? Then this is the tutorial for you. - Date added: Sun. November 9, 2003
WHOIS Search
This will show you how to make a simple WHOIS search that can be easily added to any site. - Date added: Sun. April 27, 2003
Shout Box [LIVE]!
Ever want a place where people can chat or post their opinions? Ever heard of a shout box? This tutorial will give you an easy example of having a shout box on your site. - Date added: Sat. February 22, 2003
|
dr
fgfyt
Posted by: ali
Posted on: 01/06/2005 01:19 PM
|
m
Invalid CFML construct found on line 269 at column 1. ColdFusion was looking at the following text:
else
The CFML compiler was processing:
Posted by: m
Posted on: 02/22/2006 02:19 PM
|
2007
This is a bit old, is there an updated version or revision?
Posted by: Anonymous
Posted on: 09/12/2007 04:30 PM
|
|
|
|