XSLT is a powerful language for transforming XML documents into something else. That something else can be an HTML document, another XML document, a Portable Document Format (PDF) file, a Scalable Vector Graphics (SVG) file, a Virtual Reality Modeling Language (VRML) file, Java code, or a number of other things. You write an XSLT stylesheet to define the rules for transforming an XML document, and the XSLT processor does the work. As useful as XSLT is, its peculiar characteristics make it a difficult language in which to get started. In fact, newcomers are often a little dazed on first contact. Learning XSLT offers a hands-on introduction to help them get up to speed with XSLT quickly. The book will help web developers and designers understand this powerful but often mystifying template-driven and functional-styled language, getting them over the many differences between XSLT and the more conventional programming languages. Learning XSLT moves smoothly from the simple to complex, illustrating all aspects of XSLT 1.0 through step-by-step examples that you'll practice as you work through the book.
Thorough in its coverage of the language, the book makes few assumptions about what you may already know. You'll learn about XSLT's template-based syntax, how XSLT templates work with each other, and gain an understanding of XSLT variables. Learning XSLT also explains how the XML Path Language (XPath) is used by XSLT and provides a glimpse of what the future holds for XSLT 2.0 and XPath 2.0. The ability to transform one XML vocabulary to another is fundamental to exploiting the power of XML. Learning XSLT is a carefully paced, example-rich introduction to XSLT that will have you understanding and using XSLT on your own in no time.
Michael Fitzgerald is principal of Wy'east Communications, an XML consultancy. He is the author of Learning XSLT, published by O'Reilly in 2003, and of XML Hacks, forthcoming from O'Reilly in 2004. He is also the author of Building B2B Applications with XML and XSL Essentials, both published by John Wiley & Sons.
Preface 1. Transforming Documents with XSLT How XSLT Works Using Client-Side XSLT in a Browser Using apply-templates 2. Building New Documents with XSLT Outputting Text Literal Result Elements Using the Element Called element Adding Attributes Outputting Comments Outputting Processing Instructions One Final Example 3. Controlling Output The Output Method Outputting XML Outputting HTML Outputting Text Using a QName Output Method Media Types 4. Traversing the Tree The XPath Data Model Location Paths Expressions What Is a Pattern? Predicates Axes Name and Node Tests Doing the Math with Expressions 5. XPath and XSLT Functions Boolean Functions Node-Set Functions Number Functions String Functions 6. Copying Nodes The copy Element The copy-of Element Copying Nodes from Two Documents 7. Using Variables and Parameters Defining Variables and Parameters Using Variables Using Parameters Invoking Templates with Parameters Using Result Tree Fragments 8. Sorting Things Out Simple Ascending Sort Reversing the Sort By the Numbers Multiple Sorts The lang and case-order Attributes 9. Numbering Lists Numbered Lists Alphabetical Lists Roman Numerals Inserting an Individual Formatted Value Numbering Levels The from Attribute The lang and letter-value Attributes More Help with Formatted Numbers 10. Templates Template Priority Calling a Named Template Using Templates with Parameters Modes Built-in Template Rules 11. Using Keys A Simple Key More Than One Key Using a Parameter with Keys Cross-Referencing with Keys Grouping with Keys 12. Conditional Processing The if Element The choose and when Elements 13. Working with Multiple Documents Including Stylesheets Importing Stylesheets Using the document( ) Function 14. Alternative Stylesheets A Literal Result Element Stylesheet An Embedded Stylesheet Aliasing a Namespace Excluding Namespaces 15. Extensions Xalan, Saxon, and EXSLT Extensions Using a Saxon Extension Attribute Result Tree Fragment to Node-Set Using EXSLT Fallback Behavior Checking for Extension Availability 16. XSLT 2.0 and XPath 2.0 New XSLT 2.0 Features New XPath 2.0 Features Multiple Result Trees Using Regular Expressions Grouping in XSLT 2.0 Extension Functions 17. Writing an XSLT ProcessorInterface Running an XSLT Processor from Java Writing an XSLT Processor with C SHARP 18. Parting Words The Ox Documentation Tool Signing Off Appendix: XSLT Processors Glossary Index