Use Lookup Tables with XSLT to Translate FIPS Codes
With XSLT, translate data in a source file by looking up the translation in a lookup table, using FIPS codes as an example.
While writing XSLT transformations,
sometimes you need to convert phrases or data elements from the
source file. For example, you might be transforming data from one
schema to another, and the target schema might use different
enumerated values. The source data might contain
event-time, while the target schema requires
XSLT techniques to make these conversions are well known, and even though they may not exactly be hacks, they are well worth including here. The approach is to create a lookup table that pairs the input and output phrases. There are two variations:
The lookup table is an external XML file.
The lookup table is embedded into the XSLT stylesheet.
With either, the lookup can be done with or without the help of keys, which will often speed up access. These variations are illustrated in this hack.
The FIPS Code Example
For a concrete example, this hack translates FIPS (Federal Information Processing Standards) numerical codes into city and state names. FIPS codes are published by the United States government. For example, the state of Indiana has the FIPS code 18, and the city of Bethel Village, which is in Indiana, has a code of 5050. The hack changes these codes into their natural language names.
Here is part of the source document (fips_lu_data.xml in Example 3-49).
Example 3-49. fips_lu_data.xml ...