dmerrill: Case insensitive sorting in XSLT is relatively simple. Consider this simple XSLT fragment:
<xsl:variable name="ucletters" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/> <xsl:variable name="lcletters" select="'abcdefghijklmnopqrstuvwxyz'"/><xsl:template match="entry"> <xsl:sort select="translate(title, $lcletters, $ucletters)"/> <-- Do stuff --> </xsl:template>
Which will process something like
<entry> <title>Foo</title> <title>Bar</title> <title>Baz</title> </entry>
In <title> order, not document order.