Your SlideShare is downloading. ×
0
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
XSLT. Basic.
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

XSLT. Basic.

302

Published on

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
302
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
19
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. XSLT eXtensible Stylesheet Language Transformations
  • 2. CSS vs XSL CSS = Style Sheets for HTML XSL = Style Sheets for XML ● ● ● predefined tags each tag is well understood browser knows how to display it ● ● ● does not use predefined tags each tag is not well understood browser does not know how to display it ● ● XSL describes how the XML document should be displayed XSL - More Than a Style Sheet Language
  • 3. XSL - More Than a Style Sheet Language ● XSLT - a language for transforming XML documents ● XPath - a language for navigating in XML documents ● XSL-FO - a language for formatting XML documents
  • 4. What is XSLT? ● XSLT stands for XSL Transformations ● XSLT is the most important part of XSL ● XSLT transforms an XML document into another XML document ● XSLT uses XPath to navigate in XML documents ● XSLT is a W3C Recommendation
  • 5. XSLT = XSL Transformations ● ● ● XML => XML XML => (X)HTML Add/remove, rearrange, sort, test elements in output document XSLT transforms an XML source-tree into an XML result-tree. XSLT uses XPath to find information in an XML document
  • 6. XSLT Browsers Browser Supports Ver Opera XML, XSLT, and XPath 9 Internet Explorer XML, XSLT, and XPath 6 Mozilla Firefox XML, XSLT, and XPath 3 Apple Safari XML and XSLT 3 Google Chrome XML, XSLT, and XPath 1
  • 7. How to transform... ● Correct Style Sheet Declaration <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> or <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> ● Declare the XSLT namespace to get access to XSLT elements and attributes ● Include the attribute version="1.0"
  • 8. Start with a Raw XML Document Source xml (cdcatalog.xml): <?xml version="1.0" encoding="ISO-8859-1" ?> <catalog> <cd> <title>Empire Burlesque </title> <artist>Bob Dylan</artist> <country>USA</country> <company>Columbia</company> <price>10.90</price> <year>1985</year> </cd> . . </catalog>
  • 9. Start with a Raw XML Document XSL Style Sheet (cdcatalog.xsl): <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <h2>My CD Collection</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Artist</th> </tr> <xsl:for-each select="catalog/cd"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet>
  • 10. Start with a Raw XML Document Link the XSL Style Sheet to the XML Document <?xml version="1.0" encoding="ISO-8859-1" ?> <?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?> <catalog> <cd> <title>Empire Burlesque </title> <artist>Bob Dylan</artist> <country>USA</country> <company>Columbia</company> <price>10.90</price> <year>1985</year> </cd> . . </catalog>
  • 11. Start with a Raw XML Document Result is:
  • 12. XSLT <xsl:template> Element <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:template match="/"> <html> <body> <h2>My CD Collection </h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Artist</th> </tr> <tr> <td>.</td> <td>.</td> </tr> </table> </body> </html> </xsl:template> </xsl:stylesheet > ● ● ● ● XSL style sheet is an XML document This document is an XSLT style sheet document The <xsl:template> element defines a template The match="/" attribute associates the template with the root
  • 13. XSLT <xsl:value-of> Element <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <h2>My CD Collection</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Artist</th> </tr> <tr> <td><xsl:value-of select="catalog/cd/title"/></td> <td><xsl:value-of select="catalog/cd/artist"/></td> </tr> </table> </xsl:template>
  • 14. XSLT <xsl:for-each> Element <xsl:template match="/"> <h2>My CD Collection</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Artist</th> </tr> <xsl:for-each select="catalog/cd"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:for-each> </html> <xsl:template />
  • 15. XSLT <xsl:for-each> Element <xsl:template match="/"> <h2>My CD Collection</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Artist</th> </tr> <xsl:for-each select="catalog/cd[artist=’Bob Dylan’]"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:for-each> </html> <xsl:template /> Filtering the Output Legal filter operators are: ● = (equal) ● != (not equal) ● > (less than) ● < (greater than)
  • 16. XSLT <xsl:sort> Element <table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Artist</th> </tr> <xsl:for-each select="catalog/cd"> <xsl:sort select="artist"/> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:for-each> </table>
  • 17. XSLT <xsl:if> Element Syntax <xsl:if test="expression"> ...some output if the expression is true... </xsl:if> Example: <xsl:for-each select="catalog/cd"> <xsl:if test="price > 10"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:if> </xsl:for-each>
  • 18. XSLT <xsl:choose> Element Syntax Example <xsl:choose> <xsl:when test="expression"> ... some output ... </xsl:when> <xsl:otherwise> ... some output .... </xsl:otherwise> </xsl:choose> <xsl:for-each select="catalog/cd"> <tr> <td><xsl:value-of select="title"/></td> <xsl:choose> <xsl:when test="price > 10"> <td bgcolor="#ff00ff"> <xsl:value-of select="artist"/></td> </xsl:when> <xsl:otherwise> <td><xsl:value-of select="artist"/></td> </xsl:otherwise> </xsl:choose> </tr> </xsl:for-each>
  • 19. XSLT <xsl:choose> Element Example <xsl:for-each select="catalog/cd"> <tr> <td><xsl:value-of select="title"/></td> <xsl:choose> <xsl:when test="price > 10"> <td bgcolor="#ff00ff"> <xsl:value-of select="artist"/></td> </xsl:when> <xsl:otherwise> <td><xsl:value-of select="artist"/></td> </xsl:otherwise> </xsl:choose> </tr> </xsl:for-each>
  • 20. XSLT <xsl:apply-templates> Element <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>My CD Collection</h2> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="cd"> <p> <xsl:apply-templates select="title"/> <xsl:apply-templates select="artist"/> </p> </xsl:template> ... ... <xsl:template match="title"> Title: <span style="color:#ff0000"> <xsl:value-of select="."/></span> <br /> </xsl:template> <xsl:template match="artist"> Artist: <span style="color:#00ff00"> <xsl:value-of select="."/></span> <br /> </xsl:template> </xsl:stylesheet>
  • 21. XSLT <xsl:apply-templates> Element <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>My CD Collection</h2> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="cd"> <p> <xsl:apply-templates select="title"/> <xsl:apply-templates select="artist"/> </p> </xsl:template> ... ... <xsl:template match="title"> Title: <span style="color:#ff0000"> <xsl:value-of select="."/></span> <br /> </xsl:template> <xsl:template match="artist"> Artist: <span style="color:#00ff00"> <xsl:value-of select="."/></span> <br /> </xsl:template> </xsl:stylesheet>
  • 22. XSLT processors MSXML (MS) Saxon (Java) Xalan (Java) libxslt (C) Sablotron (C++) Transformiix (Mozilla) Altova XSLT 1.0/2.0 … .. .
  • 23. Ruby XSLT processors Nokogiri 鋸 http://nokogiri.org/Nokogiri/XSLT.html REXML http://www.germane-software.com/software/rexml/ LibXML Ruby (libxslt2 based) http://xml4r.github.io/libxml-ruby/ XSLT v1.0 ONLY!!!

×