December 21, 2024
Transforming XML data with XSL
Data that has been structured with XML can be transformed by applying programming instructions using XSL (eXtensible Stylesheet Language). XSL, a family of languages (XSLT, XPath, XSL FO), is itself written using XML syntax. An XML document has a tree-like structure for its data. This is referred to as a source tree. XSL transforms the source tree into another tree, a result tree, before applying formatting instructions for output. I have avoided discussing the use of templates and pattern matching, which XSL uses to implement the creation of a new result tree.
I have created some files for you to use. Remember to store them in the same folder.
You can get an XML file here. (Right click and Save
Target As...). This is simply an extension of the markup that you saw on the
previous page. It stores the data for a number of books.
You can get an XSL file here. This is the program that
will be used to transform the XML data.
Reading these files is easy. Open Notepad, File/Open and select Files of type: All Files before navigating to the book.xml file. Repeat the process for the file book.xsl.
The XSL transformations are a series of instructions that operate on the XML data (source tree). By accessing particular elements of the source tree, a new tree is created that uses these elements in some predetermined manner. Once that new result tree is constructed, the elements can be displayed in a browser with HTML. A demonstration of this will provide another example of the transformation of data into information by use of a programming language.
Using IE6, which supports XSL, open book.xml (File/Open and Browse to select the file). As long as both files were saved in the same folder, you should see that the XSL file has transformed the XML data into this:
The XSL instruction/element <xsl:for-each select="CATALOGUE/BOOK"> contains a for-each instruction, which represents a looping construct common to many programming languages. The select="CATALOGUE/BOOK" part of the instruction enables us to access and operate on each of the nested BOOK elements. This harks back to the point about structuring data or documents. The predictability of a data structure, in this case an XML data tree, enables us to write programs for operating on that data.
Once each BOOK element is accessed, each of the values of the
four nested elements can be accessed in turn. However, the XSL file instructs
the browser to select only two values, that of TITLE and AUTHOR,
with the next two lines
<td><xsl:value-of select="TITLE"/></td>
<td><xsl:value-of select="AUTHOR"/></td>
Note that the <td></td> tags are used to construct
the cells of a HTML table. The
XSL is simply getting the XML data and placing it in HTML tags for output
to the browser.
Next page » Filtering XML data
Previous page « Introduction to XML
⇑ Up to top of page