note 50441 added to function.domxml-open-mem

From: Date: Mon, 28 Feb 2005 17:51:12 +0000
Subject: note 50441 added to function.domxml-open-mem
Groups: php.notes 
Request: Send a blank email to php-notes+get-85681@lists.php.net to get a copy of this message
It's always nice to see just where in the XML the error is so I've enhanced the error message example above to this: // Read and parse dynamic PHP/XML document. ob_start(); require($_REQUEST['page'].'.php'); $xml = ob_get_contents(); ob_end_clean(); $xmldoc = domxml_open_mem("<?xml version='1.0' encoding='ISO-8859-1'?>".$xml, DOMXML_LOAD_PARSING, $error); // Show error. if(!$xmldoc) { // Assign each line to array. $arXML = explode("\n", $xml); echo "<pre>"; foreach ($error as $errorline) { echo $errorline['errormessage']. "Node: ".$errorline['nodename']."\n". "Line: ".$errorline['line']."\n". "Column: ".$errorline['col']."\n"; // Locate actual line number. $arErrorMessage = explode(' line ', $errorline['errormessage']); $arErrorMessage = explode(' ', $arErrorMessage[1]); $errorLineNumber = $arErrorMessage[0]; // Show +/- 10 lines around error. $minErrorLineNumber = max(0, $errorLineNumber-10); $maxErrorLineNumber = min(sizeof($arXML), $errorLineNumber+10); echo "XML snip (linies: ".$minErrorLineNumber." to ".$maxErrorLineNumber."):\n"; for($n = $minErrorLineNumber; $n < $maxErrorLineNumber; $n++) if($n == $errorLineNumber) echo "<B>".htmlentities($arXML[$n])."</B>\n"; else echo htmlentities($arXML[$n])."\n"; echo "\n\n"; } echo "</pre>"; } This will actually render +/- 10 lines around the actual error. Hope others will find this usefull aswell. ---- Manual Page -- http://www.php.net/manual/en/function.domxml-open-mem.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+50441 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+50441&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+50441&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+50441&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+50441&report=yes&reason=useless Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+50441&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+50441&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#85681) next »