Summary and XSLT tricks of the trade
Summary: The MindMap team has only just begun
Actually, that's not true. The MindMap team really has gone deep into the processing power of XSLT, but you've only just begun to get a peek at what they're up to. For them, doing some string manipulation tasks was just the beginning. It was this encounter with XSLT that convinced them of the language's power, so it's only fitting that you start by taking a look at their earliest endeavors. Starting with a routine host configuration text file that consists of some data about the machines on their network, they've been able to convert it into an XML file. This gives them programmatic access to each host machine on different layers, depending on their needs.
You can do the same thing. If you're running a large Web site, for example, you can manage builds by writing configuration specs for specific branches of a source control system that refer to specific elements representing different machines.
In this tutorial, you've had just a cursory glimpse at how you can use XML as an analysis tool. You saw how the MindMap team set up a text file for analysis, and you were given an idea of what might come next in terms of examining the resulting XML's elements. In the next tutorial, you'll see how the MindMap team extends this concept much further as you explore XSLT as an analysis tool.
Next, I'll offer a couple of bonus XSLT tricks of the trade.
Remember that straight text-only files cannot be processed by an XSLT processor. This is because an XSLT processor works with an XML parser, which first looks at your input to be sure it is well-formed XML. The other thing to remember about your input string is that it may contain characters like < and >, or &. Don't wrap them in CDATA elements, a mistake I see frequently. (Okay, it's not really a mistake, it's just not good practice.) Get those things converted somehow. A good Perl interpreter is a handy thing to have, and if you're working on small-scale projects you can always use Emacs or a similar text processing program.
You can get pretty wild and crazy with parameters. In fact, you can come awfully close to mimicking the changing of variable values that many XSLT newbies automatically seek out when first experimenting with XSLT by cascading parameter values among recursive template calls. By changing the value of the string as it passes through each parameter (and let's be clear here: The string value is not actually passing through by a variable; the XSLT processor is simply reading a different part of the source tree depending on when a template is called -- XSLT is completely side-effect-free), you can manipulate strings and output what you want.

