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.
Next: Endzone >>
More XML Articles
More By Harish Kamath, (c) Melonfire