by Jeni Tennison

Grouping is a common problem in XSLT stylesheets. How do you take a list of elements and arrange them into groups? One of the most common situations in which it occurs is when you are getting XML output from a database. The database usually gives you results that are structured according to the records in the database. If it's an address book, for example, it might give you something like:

<records>
      <contact id="0001">
            <title>Mr</title>
            <forename>John</forename>
            <surname>Smith</surname>
      </contact>
      <contact id="0002">
            <title>Dr</title>
            <forename>Amy</forename>
            <surname>Jones</surname>
      </contact>
      -
</records>

The problem is how to turn this flat input into a number of lists, grouped by surname, to give something like:

 Jones,<br ...

Get XSLT and XPATH: A Guide to XML Transformations now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.