XSL Transformation With PHP And Sablotron - Mistakes Happen
(Page 6 of 8 )
Like any good API, PHP's Sablotron extension comes with an excellent error-handling mechanism. I'll modify one of the examples above to illustrate:
<?php
// the files
$xmlfile = "person.xml";
$xslfile = "person.xsl";
// create the XSLT processor
$xslthandler = xslt_create() or die("Houston, we
have a problem. No XSLT
handler available. Mission aborted.");
// process the two files to get the desired output
if(xslt_run($xslthandler,
$xslfile, $xmlfile))
{
// get and print the result
echo xslt_fetch_result($xslthandler);
}
else
{
//
error
echo "Something bad just happened.n";
echo "Error code: " . xslt_errno($xslthandler)
. "n";
echo "Error string: " . xslt_error($xslthandler) . "n";
exit;
}
// free the resources occupied by the handlers
xslt_free($xslthandler);
?>
Much of the code here has been culled from the previous examples. The difference:
this script includes a primitive error-handling mechanism, which checks whether or not the processing was successful, and returns an error code and message if not.
Both the xslt_errno() and xslt_error() functions accept a handle for the XSLT processor, and return the last error code and message generated by the processor. At least that's the theory - in my experiments with PHP 4.0.6, these functions failed to work as advertised.
Next: Publish Or Die! >>
More XML Articles
More By Harish Kamath, (c) Melonfire