XSL Transformation With PHP And Sablotron - Publish Or Die! (
Page 7 of 8 )
Now that you've
seen the different techniques available to process XSLT stylesheets, here's a
simple example which demonstrates a real-life use of this technology - a simple
XML to HTML publishing system.
Let's assume that you have a collection of data, all neatly tagged and marked
up in XML. Now, you need to use this information in different places. Some of
it may need to be converted into HTML, for use on a Web site; other bits of it
may need to be converted into WML, for wireless transfer, or imported into a database,
or transformed into PDF documents, or...
With PHP's XSLT engine, accomplishing all this becomes a snap. All you need are
separate stylesheets, each one taking care of a particular type of conversion.
Feed these stylesheets to a PHP script which knows how to handle them, and Bob's
your uncle.
As an example, consider the following script, which accepts XML and XSLT input
and saves the results of this transformation as an HTML document:
<?php
// the fodder for the Sablotron XSLT processor
$xmlfile = "person.xml";
$xslfile
= "person.xsl";
$htmlfile = "/www/person.html";
// create the XSLT processor
$xslthandler = xslt_create() or die("Can't create
XSLT handle!");
// process the two files to get the desired output
if(xslt_run($xslthandler,
$xslfile, $xmlfile))
{
// get result buffer
$result = xslt_fetch_result($xslthandler);
// publish the result to a static HTML file
$htmlfp = fopen($htmlfile,"w+");
fputs($htmlfp,$result);
fclose($htmlfp);
echo "File $htmlfile successfully created!";
}
else
{
// error handler
echo
"An error occurred:n";
echo "Error number: " . xslt_errno($xslthandler) . "n";
echo
"Error string: " . xslt_error($xslthandler) . "n";
exit;
}
// clean up
xslt_free($xslthandler);
?>
Granted, it's pretty simple - but isn't that a good thing?
In a similar manner, you could write scripts to convert your XML data into other
formats, insert it into a database or exchange it with other servers.