James H. writes "If you had to programatically output a list of HTML <a> tags linking to anchors for the Alphabet like this:
<a href="#A">A</a> <a href="#B">B</a> ...
"How would you do it? A for loop through the relevant ASCII code numbers so you can use Asc(i) to output the letter or something similar? Oh no, apparently this is the right way:
1) Create an XML file to define the alphabet (calling the root tag "root" and each node "node," since hey, that's what they are after all:
<root>
<node>A</node>
<node>B</node>
<node>C</node>
<node>D</node>
<node>E</node>
<node>F</node>
<node>G</node>
<node>H</node>
<node>I</node>
<node>J</node>
<node>K</node>
<node>L</node>
<node>M</node>
<node>N</node>
<node>O</node>
<node>P</node>
<node>Q</node>
<node>R</node>
<node>S</node>
<node>T</node>
<node>U</node>
<node>V</node>
<node>W</node>
<node>X</node>
<node>Y</node>
<node>Z</node>
</root>
"2) Use XSLT to render the <a> tags (full implementation details omitted for sanity pusposes):
<xsl:for-each select="document($alpha)/root/node">
<xsl:variable name="alpha" select="."/>
<xsl:variable name="found_alpha">
<xsl:text>false</xsl:text>
<xsl:for-each select="document($staff)/staff">
<xsl:for-each select="profile">
<xsl:if test="starts-with(surname, $alpha)">
<xsl:text>true</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:variable>
<li>
<xsl:if test="$found_alpha = 'true'"><xsl:value-of select="$found_alpha"/></xsl:if>
<a>
<xsl:attribute name="href">
<xsl:text>/staff.cfm#</xsl:text><xsl:value-of select="$alpha" />
</xsl:attribute>
<xsl:attribute name="title">
<xsl:text>Jump to the listing of staff with surnames beginning with </xsl:text><xsl:value-of select="$alpha" />
</xsl:attribute>
<xsl:value-of select="$alpha"/>
</a>
</li>
</xsl:for-each>
"Yes, that's all much simpler than three line for loop."