Jump to content
xisto Community
Sign in to follow this  
virtuous8

XSLT Beginner

Recommended Posts

start with an xml file:


<?xml encoding="utf-8" version="1.0"?><root> <contact type="business"> <name>John</name> </contact> <contact type="business"> <name>Jane</name> </contact> <contact type="business"> <name>Jack</name> </contact> <contact type="family"> <name>Jim</name> </contact></root>

now write your contacts.xslt file:


<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform/ ; <xsl:output method="xml" encoding="utf-8" /> <xsl:template match="/"> <html> <xsl:for-each select="//contact/[type=business]"> <xsl:call-template name="contact" /> </xsl:for-each> </html></xsl:template> <xsl:template name="family"> <xsl:value-of select="./name" /> <br/></xsl:template></xsl:stylesheet>

now you need xslt processor to combine xml + xslt, in php there is get Sablotron xslt processor. example using Sablotron:


<?php $xmlFile = 'contacts.xml'; $xslFile = 'contacts.xslt'; // Create a new processor handle $xslt_processor= xslt_create() or die("Can't create XSLT processor handle!"); //set up parameters //$parameters = array('searchstring'=>$searchstring); $parameters = NULL; //perform the XSLT transformation $result = xslt_process($xslt_processor, $xmlFile, $xslFile, NULL, NULL, $parameters); // Free up the resources xslt_free($xslt_processor); echo($result);?>

the output is: John Jane Jack notes and explanation: xslt uses powerful xpath expression to navigate through the xml parsetree.


Share this post


Link to post
Share on other sites

First of all, you do not need to use server side XSLT parsing to read an XML file. You can simply specify it as a stylesheet using an XML processing instruction in the XML file like this:

<?xml-stylesheet type="text/xsl" href="yourFile.xsl" ?>
.

Second of all, for a beginner tutorial, I wouldn't make it as complicated with attribute names and multiple templates. I mean <xsl:call-template />? That is definitely not for beginners.

Internet Explorer has the MSXML parser, Gecko-based browsers (Firefox/Mozilla/Flock) has a built-in XSLT parser and Safari/Konqueror can also read XSLT correctly too. You don't need PHP to parse XSLT, browsers can do it.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.