XSLT

From BC$ MobileTV Wiki
Revision as of 19:28, 20 October 2011 by Joe (Talk | contribs)

Jump to: navigation, search
Xslt.png

eXtensible Stylesheet Language Translation is act of applying a specially formatted file which contains an XSL translation specification for the content of a particular XML file, translating the context from raw XML format into a formatted HTML page (or other application/GUI element).



Structure

The structure of an XSLT requiers three parts:

  1. A well-formed XML document we want to parse
  2. An XSL file for grabbing the desired data from the XML document and performing the transformation
  3. A target HTML file with a particular look & feel we want to generate and present to the end-us

These three components and the flow of a typical transformation is nicely summarized in the following diagram:

Transforming an XML document to HTML
er


EXAMPLE

For example, with the following XML document for defining a shareable Contact list:

<AddressBook>
  <contact type="simple">
    <name>John Doe</name>
    <title>CEO, Company Inc.</title>
    <email>john.doe@company.com</email>
    <phone>(123) 456-7890</phone>
  </contact>
  ...
</AddressBook>


We can extract each contact's information via the XSL:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns="http://www.w3.org/1999/xhtml">
  <xsl:template match="contact[@type='simple']">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <title>business card</title>
      <body>
    <xsl:apply-templates select="name"/> <xsl:apply-templates select="title"/> <xsl:apply-templates select="email"/> <xsl:apply-templates select="phone"/>
    </body>
    </html>
  </xsl:template>
  <xsl:template match="contact/name">
  • <xsl:value-of select="text()"/>

      </xsl:template>
      <xsl:template match="contact/title">
    
    occupation:

    <xsl:value-of select="text()"/></em>

      </xsl:template>
      <xsl:template match="contact/email">
    

    email: <a href="mailto:{text()}"><xsl:value-of select="text()"/></a>

      </xsl:template>
      <xsl:template match="contact/phone">
    

    phone#: <a href="tel:{text()}"><xsl:value-of select="text()"/></a>

  • </xsl:template> </xsl:stylesheet> This will output the following HTML to be displayed in the user's browser: <html xmlns="http://www.w3.org/1999/xhtml"> <title>Address Book</title> <body>
    </body>
    </html>
    



    Tools

    XSLT Standard Library


    XSLT Generator


    W3C XSLT Service

    Sample call:

    http://www.w3.org/2000/06/webdata/xslt?xslfile=http://tomi.vanek.sk/xml/wsdl-viewer.xsl &xmlfile=http://198.164.40.210:8080/SAVOIR_MgmtServices/services/UserManagerWS?wsdl &transform=Submit
    

    AJAXSLT

    AJAXSLT is an implementation of XSL-T in JavaScript, intended for use in fat web pages, which are nowadays referred to as AJAX applications. Because XSL-T uses XPath, it is also an implementation of XPath that can be used independently of XSL-T.


    Resources


    Java


    JavaScript


    PHP


    C


    C#


    Tutorials


    External Links


    See Also

    XSL | XML