The brilliant moves we occasionally make would not have been possible without the prior dumb ones.
This chapter renders all previous chapters moot. Okay, maybe this is a slight exaggeration. The fact is that the examples in previous chapters solve the particular problems they address. They are also useful for didactic purposes. If an example does not solve a problem you face, it might point the way to a solution. The desired solution could be a small modification of the code or a reapplication of the same techniques.
This chapter sets its goals a little higher. It presents examples
that solve a very broad range of problems without requiring
customization of the example’s core code. Those of
you who are familiar with C++, and specifically the
Standard Template Library (STL), already know
the power you can obtain by creating generic code (generic
algorithms) and reusing them in various contexts. Others who use
functional programming languages (e.g., Lisp, ML, or Haskell) also
know of the great power obtained through the creation of higher-order
functions: general-purpose functions that are specialized by
accepting special purpose functions as arguments. This chapter shows
that XSLT, although not specifically designed as a generic or
functional language, has inherent capabilities to enable
The techniques used in this chapter stretch the abilities of XSLT quite a bit. Not everyone will ...