Title
Introduction
What I Assume About You
How This Book Is Organized
Conventions Used in This Book
Icons Used in This Book
Part I : Getting Started with XSLT
Chapter 1: Introducing the X-Team
XML: Storing Your Data
XSL: Presenting XML Data
XSLT: Transforming Your XML Data
XPath: Seeking Out Your Data
The X-Team through HTML Eyes
Chapter 2: Writing Your First XSLT Stylesheet
Preparing Your XSLT Working Environment
Creating a Simple XML Document
Knowing the End Result
Writing an XSLT Stylesheet
Processing the Stylesheet
Viewing the Results
Part II : Becoming an XSLT Transformer
Chapter 3: Transforming with Style (Stylesheets, That Is)
Structure of a Stylesheet
Constructing Your XSLT Stylesheet
What’s in a Name(space)?
Documents as Trees
Chapter 4: Templates Rule!
A Glorified Mail Merge
Basics of a Template Rule
Common Action Instructions
Built-In Template Rules
Matchmaker, Make Me a Match
Working with Attribute Value Templates
Working with Named Templates
Chapter 5: XPath Espresso
XPath, The X-Team’s Commando
Dancing the Location Step
Defining Relationships with Axes
Matching Nodes with Node Tests
Using Predicates to Get Specific
Take a Walk on the Absolute Side
Putting It All Together
Chapter 6: We Want Results!
XSLT, Like Skinning a Cat
XML Source
Copying an Element
Copying All Elements
Adding a New Element
Adding a Calculated Value
Renaming an Element
Removing an Element
Removing an Attribute
Reordering Elements
Merging Elements
Adding Attributes
Moving an Attribute
Converting Elements into Attributes
Converting Attributes into Elements
Part III : Prime Time XSLT
Chapter 7: Adding Programming Logic Isn’t Just for Propheads
Conditional and Looping Statements
If and Only If
Testing Expressions with Logical Operators
Why Choosy People Choose xsl:choose
Going Loopy with xsl:for-each
Chapter 8: Variables in XSLT: A Breed Apart
What Is a Variable?
Setting Variables
Uses of Variables
Think Globally, Act Locally
Working with Parameters
Chapter 9: Tweaking the Results to Get What You Want
Sorting Elements in the Results Tree
Adding Automatic Numbering
Chapter 10: To HTML and Beyond!
XML and HTML
Outputting to HTML
Creating an HTML Table
Linking an XSLT Stylesheet with an XML Document
Browser Support of XSLT
To Infinity and Beyond (Into Other Formats)
Chapter 11: XPath Data Types and Functions
Playing ‘Heart and Soul’ with Nodes
Working with Strings
Numerically Speaking
Booleans: To Be or Not to Be
General Purpose Functions
Part IV : eXtreme XSLT
Chapter 12: Combining XSLT Stylesheets
Comparing xsl:include and xsl:import
Practical Use of xsl:import
Chapter 13: “Gimme Some Space” and Other Output Issues
Gimme Some Space
Indenting Your Result Document
Adding Comments
Adding Processing Instructions
Chapter 14: Keys and Cross-Referencing
Keys to the Kingdom
Using Keys with Multiple Source Documents
Chapter 15: Namespaces Revisited
Speaking the Namespace Lingo
Adding a Namespace to the Result Document
Working with Multiple Namespaces
Chapter 16: Extending XSLT
Going Beyond the Basics
Using an Extension Element
Using an Extension Function
Ensuring Portability of Your Stylesheets
Chapter 17: Debugging XSLT Transformations
Conditionally Halting Execution
Adding a Conditional Debug Mode
Tracing through Your Code
More Powerful Debugging
Part V : The Part of Tens
Chapter 18: Ten Most Confusing Things About XSLT
Built-In Template: The Man Behind the Screen
Thar’s Trees in Them Documents
Getting to the Root of the Issue
Why the Selected Node Is Not the Same as the Current Node
Those //@.}* Abbreviations
To Apply or Copy, That Is the Question
Walk This Way
Expressions, Paths, and Steps
Those Cute Little Curly Braces
Whitespace, the Final Frontier
Chapter 19: Ten All-Pro XSLT Resources on the Web
Xslt.com
W3C XSLT Recommendation
W3C XPath Recommendation
Dave Pawson’s XSLT FAQ
W3School’s XSL School
MSDN’s XML Center
Xml101.com
Jeni’s XSLT Pages
TopXML: XSLT Reference
Nic Miloslav’s XSLT Tutorial
Chapter 20: Ten XSLT Processors Available Online
Saxon
msxsl
Sablotron
Xalan-C++
Xalan-Java
LotusXSL
XT
jd.xslt
XML::XSLT
libxslt
Glossary
3.135.219.166