Bug #10569: xslt_error handling
| From: | msopacua at idg dot nl | Date: | Mon, 30 Apr 2001 23:37:41 +0000 |
| Subject: | Bug #10569: xslt_error handling | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-53142@lists.php.net to get a copy of this message | ||
From: msopacua@idg.nl
Operating system: BSD
PHP version: 4.0.4pl1
PHP Bug Type: Sablotron XSL
Bug description: xslt_error handling
Hi,
again - the error handling issue.
I read the closed bugs and am surprised at the speed at which they are closed.
First of all - a documentation issue:
xslt_set_error_handler isn't documented. Thank you for mentioning it briefly, and then letting
me figure out the arguments the called function needs.
Secondly - dying with a Fatal error, DOES occur, when the error handler isn't set! Even when
using @xslt_process.
Try this one:
<?php
$xslData = '<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="article">
<table border="1" cellpadding="2" cellspacing="1">
<tr>
<td width="20%">
 
</td>
<td width="80%">
<h2><xsl:value-of select="title"/></h2>
<h3><xsl:value-of select="author"/></h3>
<br/>
<xsl:copy-of select="p"/>
</td>
</tr>
</table>
</xsl:template>
</xsl:stylesheet>';
$xmlData = '<?xml version="1.0"?>
<article>
<title>Learning German</title>
<author>Sterling Hughes</author>
<p>
Essential phrases:
<br>
Können Sie mir sagen, wo die Toilette ist?<br/>
Ein grosses Bier, bitte!<br/>
Noch eins, bitte.<br/>
</p>
</article>';
function xsl_error($errno, $errstr)
{
echo "\$errorstr: $errstr<BR>";
return false;
}
//xslt_set_error_handler("xsl_error");
if (@xslt_process($xslData, $xmlData, $result)) {
echo "Here is the brilliant in-depth article on learning";
echo " German: ";
echo "<br>\n<br>";
echo $result;
} else {
echo "There was an error that occurred in the XSL transformation...\n";
echo "\tError number: " . xslt_errno() . "\n";
echo "\tError string: " . xslt_error() . "\n";
//exit;
}
?>
</BODY>
</HTML>
You won't see the closing body and html tags.
Uncommenting the xslt_set_error_handler() will. The errorstr output, however - is numeric.
So can we at least have updated documentation on how to trap errors? And how
xslt_set_error_handler() must be used?
--
Edit Bug report at: http://bugs.php.net/?id=10569&edit=1