1 / 14

CG0119 Web Database Systems Parsing XML: using SimpleXML & XSLT

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.

lyneth
Download Presentation

CG0119 Web Database Systems Parsing XML: using SimpleXML & XSLT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CG0119 Web Database SystemsParsing XML: using SimpleXML & XSLT

  2. 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

  3. <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)‏ Creating the XSLT (1/6)‏

  4. <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. Creating the XSLT (2/6)‏

  5. <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”. Creating the XSLT (3/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> Create a template that will be applied to any part of the XML that matches the expression. “/” is the expression for the root element. Creating the XSLT (4/6)‏

  7. <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… Creating the XSLT (5/6)‏

  8. <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. Creating the XSLT (6/6)‏

  9. 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 source echo $proc->transformToXML($xml);

  10. The output (unsorted)…

  11. 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>

  12. The output (sorted)…

  13. 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

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

More Related