virtuous8 0 Report post Posted March 15, 2006 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
FirefoxRocks 0 Report post Posted June 13, 2008 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