O'Reilly logo

XSLT, 2nd Edition by Doug Tidwell

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

The document() Function

A common task in writing stylesheets is combining data from different documents. We’ll start by using the document() function to parse and process multiple XML documents. We’ll start our discussion with XML-tagged purchase orders that look like this:

<?xml version="1.0"?>
<!-- po38295.xml -->
<purchase-order id="38295">
  <date year="2001" month="9" day="8"/>
  <customer id="4738" level="Basic">
    <address type="business">
      <name>
        <title>Ms.</title>
        <first-name>Amanda</first-name>
        <last-name>Reckonwith</last-name>
      </name>
      <street>930-A Chestnut Street</street>
      <city>Lynn</city>
      <state>MA</state>
      <zip>02930</zip>
    </address>
    <address type="ship-to"/>
  </customer>
  <items>
    <item part-no="23813-03-CDK">
      <name>Cucumber Decorating Kit</name>
      <qty>1</qty>
      <price>29.95</price>
    </item>
  </items>
</purchase-order>

If we had a few dozen documents like this, we might want to view the collection of purchase orders in a number of ways. We could view them sorted (or even grouped) by customer, by part number, by the amount of the total order, by the state to which they were shipped, etc. One way to do this would be to write code that worked directly with the Document Object Model. We could parse each document, retrieve its DOM tree, and then use DOM functions to order and group the various DOM trees, display certain parts of the DOM trees, etc. Because this is an XSLT book, though, you probably won’t be surprised to learn that XSLT provides a function to handle most of the heavy lifting ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required