14
CG0119 Web Database Systems Parsing XML: using SimpleXML & XSLT

CG0119 Web Database Systems Parsing XML: using SimpleXML & XSLT

  • Upload
    lyneth

  • View
    23

  • Download
    0

Embed Size (px)

DESCRIPTION

CG0119 Web Database Systems Parsing XML: using SimpleXML & XSLT. XSLT. E X tensible S tylesheet L anguage T ransformations What is it? w3c recommendation that applies style sheets to XML Allows styles to be applied for outputting XML, to a web browser for instance. - PowerPoint PPT Presentation

Citation preview

Page 1: CG0119  Web Database Systems Parsing XML:                     using SimpleXML & XSLT

CG0119 Web Database Systems

Parsing XML: using SimpleXML & XSLT

Page 2: CG0119  Web Database Systems Parsing XML:                     using SimpleXML & XSLT

XSLT

• EXtensible Stylesheet Language Transformations

• What is it?– w3c recommendation that applies style

sheets to XML– Allows styles to be applied for outputting

XML, to a web browser for instance.– Can also sort and filter data for output– Like CSS, separates formatting from content

Page 3: CG0119  Web Database Systems Parsing XML:                     using SimpleXML & XSLT

Creating the XSLT (1/6)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:param name="heading" select="'XML Grade Listing (using XSLT)'"/> <xsl:output method="html" encoding="iso-8859-1" indent="no"/> <xsl:template match="/"> <h1><xsl:value-of select="$heading"/></h1> <table border="1"> ... <xsl:for-each select="grades/grade"> <tr> <td><xsl:value-of select="gradeID"/></td> <td><xsl:value-of select="result"/></td> </tr> </xsl:for-each> </table> </xsl:template></xsl:stylesheet>

Style sheet declaration (must be at the beginning of the file)

Page 4: CG0119  Web Database Systems Parsing XML:                     using SimpleXML & XSLT

Creating the XSLT (2/6)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:param name="heading" select="'XML Grade Listing (using XSLT)'"/> <xsl:output method="html" encoding="iso-8859-1" indent="no"/> <xsl:template match="/"> <h1><xsl:value-of select="$heading"/></h1> <table border="1"> ... <xsl:for-each select="grades/grade"> <tr> <td><xsl:value-of select="gradeID"/></td> <td><xsl:value-of select="result"/></td> </tr> </xsl:for-each> </table> </xsl:template></xsl:stylesheet>

This is optional – purely demonstrates that parameters can be used in a similar way to variables.

Page 5: CG0119  Web Database Systems Parsing XML:                     using SimpleXML & XSLT

Creating the XSLT (3/6)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:param name="heading" select="'XML Grade Listing (using XSLT)'"/> <xsl:output method="html" encoding="iso-8859-1" indent="no"/> <xsl:template match="/"> <h1><xsl:value-of select="$heading"/></h1> <table border="1"> ... <xsl:for-each select="grades/grade"> <tr> <td><xsl:value-of select="gradeID"/></td> <td><xsl:value-of select="result"/></td> </tr> </xsl:for-each> </table> </xsl:template></xsl:stylesheet>

Declares the output method. Can also output as “xml” and “text”.

Page 6: CG0119  Web Database Systems Parsing XML:                     using SimpleXML & XSLT

Creating the XSLT (4/6)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:param name="heading" select="'XML Grade Listing (using XSLT)'"/> <xsl:output method="html" encoding="iso-8859-1" indent="no"/> <xsl:template match="/"> <h1><xsl:value-of select="$heading"/></h1> <table border="1"> ... <xsl:for-each select="grades/grade"> <tr> <td><xsl:value-of select="gradeID"/></td> <td><xsl:value-of select="result"/></td> </tr> </xsl:for-each> </table> </xsl:template></xsl:stylesheet>

Create a template that will be applied to any part of the XML that matches the expression. “/” is the expression for the root element.

Page 7: CG0119  Web Database Systems Parsing XML:                     using SimpleXML & XSLT

Creating the XSLT (5/6)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:param name="heading" select="'XML Grade Listing (using XSLT)'"/> <xsl:output method="html" encoding="iso-8859-1" indent="no"/> <xsl:template match="/"> <h1><xsl:value-of select="$heading"/></h1> <table border="1"> ... <xsl:for-each select="grades/grade"> <tr> <td><xsl:value-of select="gradeID"/></td> <td><xsl:value-of select="result"/></td> </tr> </xsl:for-each> </table> </xsl:template></xsl:stylesheet>

value-of is used to extract the data from a XML element or a param.XHTML can be inserted where ever required…

Page 8: CG0119  Web Database Systems Parsing XML:                     using SimpleXML & XSLT

Creating the XSLT (6/6)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:param name="heading" select="'XML Grade Listing (using XSLT)'"/> <xsl:output method="html" encoding="iso-8859-1" indent="no"/> <xsl:template match="/"> <h1><xsl:value-of select="$heading"/></h1> <table border="1"> ... <xsl:for-each select="grades/grade"> <tr> <td><xsl:value-of select="gradeID"/></td> <td><xsl:value-of select="result"/></td> </tr> </xsl:for-each> </table> </xsl:template></xsl:stylesheet>

Selects & applies a style for every element of a node-set as defined by the expression in the ‘select’ attribute.

Page 9: CG0119  Web Database Systems Parsing XML:                     using SimpleXML & XSLT

Displaying XML using XSLT in PHP

// Load the XML data source$xml= simplexml_load_file('grade.xml'); // one of these will work$xml= DOMDocument::loadXML(file_get_contents('grade.xml');

// Load the XML stylesheet$xsl = simplexml_load_file('grade.xsl'); // one of these will work$xsl = DOMDocument::loadXML(file_get_contents('grade.xsl');// create an xslt processor instance$proc = new XSLTProcessor;

// import the xsl stylesheet into the xslt processor$proc->importStyleSheet($xsl);

// Transform and output the xml data sourceecho $proc->transformToXML($xml);

Page 10: CG0119  Web Database Systems Parsing XML:                     using SimpleXML & XSLT

The output (unsorted)…

Page 11: CG0119  Web Database Systems Parsing XML:                     using SimpleXML & XSLT

Sorting Data using the XSLT

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> ... <xsl:template match="/"> <h1><xsl:value-of select="$heading"/></h1> <table border="1"> ... <xsl:for-each select="grades/grade"> <xsl:sort select="result"/> <tr> <td><xsl:value-of select="gradeID"/></td> <td><xsl:value-of select="result"/></td> </tr> </xsl:for-each> </table> </xsl:template></xsl:stylesheet>

Page 12: CG0119  Web Database Systems Parsing XML:                     using SimpleXML & XSLT

The output (sorted)…

Page 13: CG0119  Web Database Systems Parsing XML:                     using SimpleXML & XSLT

Summary

• XSLT allows style sheets to be applied to XML documents

– Separates style from content

– Can output as xml, html and text

Use the reference on the next page. It is a good resource

Page 14: CG0119  Web Database Systems Parsing XML:                     using SimpleXML & XSLT

Recommended Reading

http://www.w3schools.com/xsl/default.asp- w3schools XSLT tutorial & reference