XSLT Quickly book cover Order "XSLT Quickly" online from amazon.com

"Transforming XML" Columns

The following columns appeared in XML.com from June 2000 to September 2005. They include introductions to basic XSLT concepts, hints to approaching typical XSLT problems, and tours of XSLT 2.0 features. Most of the earlier columns are excerpted from the book "XSLT Quickly," shown above. Would you like to see the book updated to cover XSLT 2.0? Write to me at bob@snee.com and let me know.

Automating Stylesheet Creation: Using stylesheets to create stylesheets. Sep. 7, 2005

Appreciating Libxslt: A fast, free XSLT processor for Windows and Linux with some handy extra features. Aug. 3, 2005

Push, Pull, Next!: A review of the push and pull styles of XSLT stylesheet architectures and looks at two new XSLT 2.0 instructions that aid push-style development. Jul. 6, 2005

Seeking Equality: How XSLT 1.0 and 2.0 let you evaluate whether two elements are equal. Jun. 8, 2005

The Path of Control: XPath 2.0's new control structures (for example, "if" statements and "for" loops) and what they can add to XSLT 2.0 stylesheets. May. 4, 2005

Using Stylesheet Schemas: How a DTD or schema for XSLT stylesheets can help your stylesheet development. Apr. 6, 2005

The XPath 2.0 Data Model: And hence, the XSLT 2.0 data model. Feb. 2, 2005

Extending XSLT with EXSLT: An initiative to standardize XSLT extensions and what these extensions can do for your stylesheets. Jan. 5, 2005

XSLT Web Service Clients: Writing a multi-step web services client in XSLT to pull photo metadata from flickr.com. Dec. 1, 2004

Using Customized Schema Constraints: The W3C and RELAX NG schema languages let you embed Schematron rules. How do you pull those rules out and check that they're being followed in your data? With XSLT. Nov. 10, 2004

Schematron 1.5: Looking Under the Hood: The reference implementation of Schematron is one of the most powerful XSLT applications available. In this column, we look at how it works. Oct. 6, 2004

Converting XML to RDF: As a follow-up to last month's column, "A Somewhat Generic XML to RDF Converter": an XSLT stylesheet that converts data returned from Amazon Web Services to RDF. Sep. 1, 2004

Amazon's Web Services and XSLT: Writing a simple XSLT client that uses Amazon Web Services. Aug. 4, 2004

An Interview with Michael Kay: An interview with Michael Kay: developer of Saxon, editor of the W3C's XSLT 2.0 specification, and the author of Wrox press's " XSLT Programmer's Reference" Jul. 7, 2004

Entity and Character References: XSLT 1.0 gives you no straightforward way to output entity references (e.g. ä or numeric character references (e.g. ä, but XSLT 2.0 does. Find out how. Jun. 2, 2004

Utility Stylesheets, Part Two: More short utility stylesheets: strip the namespaces from a document, converting attribute value QNames to URIs, and converting a document's encoding. May. 5, 2004

Utility Stylesheets: Short, useful XSLT utilities: stripping empty paragraphs, convert mixed content to element content, and and adding ID values to elements. Apr. 7, 2004

Tunneling Variables: XSLT 2.0's tunneled variables let you implicitly pass parameters, which can save you a lot of coding. Mar. 24, 2004

Opening Open Formats with XSLT: Four-year old XSLT 1.0 is still solving new problems as more data becomes available in XML. One example: pulling speaker notes from a PowerPoint or OpenOffice Impress presentation. Feb. 4, 2004

Trees, Temporarily: XSLT 2.0 replaces 1.0's Result Tree Fragments with temporary trees, letting you use complex, typed structures in variables and parameters. Dec. 3, 2003

Grouping With XSLT 2.0: XSLT 2.0's new grouping feature lets you group data by specific values as easily as SQL does. Nov. 5, 2003

Datatype Checking With XSLT 2.0: Using XSLT 2.0's data typing features, even if you're not using schemas. Oct. 1, 2003

Writing Your Own Functions in XSLT 2.0: In this month's Transforming XML column Bob DuCharme explains how to write arbitrary XSLT functions in XSLT 2.0. Sep. 3, 2003

New and Improved String Handling: An introduction to new features in XSLT 2.0 and XPath 2.0 for comparing strings, creating delimited lists, and and performing search and replace operations. Aug. 6, 2003

Transclusion with XSLT 2.0: XSLT 2.0's features for including separate local or remote resources into a result tree. Jul. 9, 2003

Regular Expression Matching in XSLT 2: An introduction to XSLT 2.0's use of regular expressions. Jun. 4, 2003

XSLT 2 and Delimited Lists: Using XSLT 2.0 to split comma-delimited list items into separate elements. May. 7, 2003

Conditional Execution: XSLT's equivalent of "if" and case statements. Apr. 2, 2003

Prototyping One-to-many Links with XSLT: Implementing advanced linking widgets with XSLT. Mar. 5, 2003

XSLT, Browsers, and JavaScript: How and why to use XSLT to add JavaScript to your result tree. Feb. 5, 2003

Never Mind the Namespaces: An XSLT RSS Client: A complete RSS aggregation client in less then 80 lines of XSLT, including comments and whitespace. Jan. 2, 2003

Automatic Numbering, Part Two: Creating and formatting automatic numbers in your result XML. Part two of a two-part series. Dec. 11, 2002

Automatic Numbering, Part 1: Creating and formatting automatic numbers in your result XML. Part one of a two-part series. Nov. 6, 2002

Duplicate and Empty Elements: Detecting and deleting duplicate and empty elements in source and result trees. Oct. 2, 2002

Controlling the DOCTYPE and XML Declaration: Using XSLT's xsl:output attributes to add or suppress DOCTYPE and XML declarations to result documents. Sep. 4, 2002

Finding the First, Last, Biggest, Smallest: Finding maximum and minimum values in your source document. Aug. 7, 2002

Sorting in XSLT: Using XSLT to sort content: controlling the sort order, using multiple keys, and more. Jul. 3, 2002

Comparing and Replacing Strings: How do you know when two strings are equal? How can you do a search-and-replace in XSLT? Jun. 5, 2002

Splitting and Manipulating Strings: Picking part and recombining strings from your element and attribute values, and normalizing white space. May. 1, 2002

Putting Attributes to Work: Gain greater control over your use and creation of attribute names and values. Apr. 3, 2002

Reading Multiple Input Documents: Using XSLT's document() function to read all or part of an external document into the result tree. Mar. 6, 2002

Declaring Keys and Performing Lookups: How to use xsl:key instruction and the the key() function to speed lookups in XSLT stylesheets. Feb. 6, 2002

Controlling Whitespace, Part Three: Too much whitespace in your result document? Not enough? This three-part series describes how to gain better control over whitespace in your source and result documents. Jan. 2, 2002

Controlling Whitespace, Part Two: Too much whitespace in your result document? Not enough? This three-part series describes how to gain better control over whitespace in your source and result documents. Dec. 5, 2001

Controlling Whitespace, Part One: Too much whitespace in your result document? Not enough? This three-part series describes how to gain better control over whitespace in your source and result documents. (See also "Splitting and Manipulating Strings" for background on normalizing white space.) Nov. 7, 2001

Generating Unique IDs and Linking to Them: How to create and use unique element IDs with the generate-id() function, and how to use these values to create links. Oct. 3, 2001

XSLT Extensions: How do non-XSLT functions and elements fit into stylesheets, and how can you take advantage of them? Sep. 5, 2001

Getting Loopy: "for" loops, "while" loops, and iteration across node sets to do the same thing to each node. Aug. 1, 2001

Math and XSLT: XSLT is primarily for transforming text, but you can use it to do basic math too. Jul. 5, 2001

Using the W3C XSLT Specification: For advanced XSLT use, the W3C's XSLT specification can be a handy tool. This guide helps you read the specification and clears up confusing terms. Jun. 6, 2001

Namespaces and Stylesheet Logic: Querying and controlling the namespaces used in your source document. May. 2, 2001

Namespaces and XSLT Stylesheets: How to control the namespaces that are declared and referenced in your output document. Apr. 4, 2001

Entities and XSLT: Entities are often used to represent special characters in XML documents. Issues around reading them (or attempting to read them) and writing them can be confusing. Mar. 14, 2001

Setting and Using Variables and Parameters: Adding flexibility to your stylesheets with variables and parameters. Feb. 7, 2001

Axis Powers: Part Two: This article covers the remaining XPath axes introduced in the December 20, 2000 column. Jan. 3, 2001

Axis Powers: Part One: Many XSLT developers use only a few of the axes available for use in XPath expressions. Getting to know all eight axes can expand the power of your XPath expressions and your XSLT stylesheets. Dec. 20, 2000

Combining Stylesheets with Include and Import: Using combinations of stylesheet files to modularize complex projects and to create pluggable customizations of existing stylesheets. Nov. 11, 2000

Finding Relatives: An introduction to using XPath to get parent, grandparent, sibling and other relative elements of the element that your template rule is working on. Oct. 4, 2000

XSLT, Comments and Processing Instructions: Reading and writing comments and processing instructions in XML documents. Sep. 13, 2000

HTML and XSLT: Reading and writing HTML that isn't necessarily well-formed XML. Aug. 30, 2000

Adding New Elements and Attributes: Creating new markup in your output. Aug. 2, 2000

Copying, Deleting, and Renaming Elements: Introducing some of the most basic tasks to perform in XSLT. Jun. 7, 2000