| |
| |
Preface | |
| |
| |
| |
Getting Started | |
| |
| |
The Design of XSLT | |
| |
| |
XML Basics | |
| |
| |
Installing XSLT Processors | |
| |
| |
Summary | |
| |
| |
| |
The Obligatory Hello World Example | |
| |
| |
Goals of This Chapter | |
| |
| |
Transforming Hello World | |
| |
| |
How a Stylesheet Is Processed | |
| |
| |
Stylesheet Structure | |
| |
| |
Sample Gallery | |
| |
| |
Summary | |
| |
| |
| |
XPath: A Syntax for Describing Needles and Haystacks | |
| |
| |
The XPath Data Model | |
| |
| |
Location Paths | |
| |
| |
Attribute Value Templates | |
| |
| |
Datatypes | |
| |
| |
XPath Operators | |
| |
| |
[2.0] Comments in XPath Expressions | |
| |
| |
[2.0] Types of XSLT 2.0 Processors | |
| |
| |
The XPath View of an XML Document | |
| |
| |
Summary | |
| |
| |
| |
Creating Output | |
| |
| |
Goals of This Chapter | |
| |
| |
Generating Text | |
| |
| |
Numbering Things | |
| |
| |
Formatting Decimal Numbers | |
| |
| |
[2.0] Formatting Dates and Times | |
| |
| |
Using [left angle bracket]xsl:copy[right angle bracket] and [left angle bracket]xsl:copy-of[right angle bracket] | |
| |
| |
Dealing with Whitespace | |
| |
| |
Summary | |
| |
| |
| |
Branching and Control Elements | |
| |
| |
Goals of This Chapter | |
| |
| |
Branching Elements of XSLT | |
| |
| |
Invoking Templates by Name | |
| |
| |
Parameters | |
| |
| |
Variables | |
| |
| |
Using Recursion to Do Most Anything | |
| |
| |
A Stylesheet That Emulates a for Loop | |
| |
| |
Summary | |
| |
| |
| |
Creating Links and Cross-References | |
| |
| |
Using the XML ID, IDREF, and IDREFS Datatypes | |
| |
| |
XSLT's Key Facility | |
| |
| |
Generating Links in Unstructured Documents | |
| |
| |
Summary | |
| |
| |
| |
Sorting and Grouping Elements | |
| |
| |
Sorting Data with [left angle bracket]xsl:sort[right angle bracket] | |
| |
| |
[2.0] The [left angle bracket]xsl:perform-sort[right angle bracket] Element | |
| |
| |
Grouping Nodes | |
| |
| |
[2.0] New Grouping Syntax in XSLT 2.0 | |
| |
| |
Summary | |
| |
| |
| |
Combining Documents | |
| |
| |
The document() Function | |
| |
| |
The document() Function and Sorting | |
| |
| |
Implementing Lookup Tables | |
| |
| |
Grouping Across Multiple Documents | |
| |
| |
[2.0] Using XSLT 2.0 to Simplify Things | |
| |
| |
[2.0] The doc() and doc-available() Functions | |
| |
| |
[2.0] The collection() Function | |
| |
| |
[2.0] The unparsed-text() and unparsed-text-available() Functions | |
| |
| |
Summary | |
| |
| |
| |
Extending XSLT | |
| |
| |
The XSLT Extension Mechanism | |
| |
| |
[2.0] Creating New Functions with [left angle bracket]xsl:function[right angle bracket] | |
| |
| |
Example: Generating Multiple Output Files | |
| |
| |
Creating Custom Collations | |
| |
| |
Generating Hidden Word Graphics | |
| |
| |
Example: Generating an SVG Pie Chart | |
| |
| |
Writing Extensions in Other Languages | |
| |
| |
Using Extension Functions from the EXSLT Library | |
| |
| |
Accessing a Database with an Extension Element | |
| |
| |
Creating a Photo Album with an Extension Element | |
| |
| |
Summary | |
| |
| |
| |
XSLT Reference | |
| |
| |
| |
XPath Reference | |
| |
| |
| |
XSLT, XPath, and XQuery Function Reference | |
| |
| |
| |
XML Schema Overview | |
| |
| |
| |
[2.0] Regular Expressions | |
| |
| |
| |
XSLT Formatting Codes | |
| |
| |
| |
XSLT 2.0 Migration Guide | |
| |
| |
Glossary | |
| |
| |
Index | |