note 107869 added to class.simplexmlelement
| From: | saganmarketing.com | Date: | Mon, 12 Mar 2012 00:27:36 +0000 |
| Subject: | note 107869 added to class.simplexmlelement | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-186602@lists.php.net to get a copy of this message | ||
Parsing an invalid XML string through SimpleXML causes the script to crash completely (usually)
therefore it is best to make sure the XML is valid before parsing with something like this:
// Must be tested with ===, as in if(isXML($xml) === true){}
// Returns the error message on improper XML
function isXML($xml){
libxml_use_internal_errors(true);
$doc = new DOMDocument('1.0', 'utf-8');
$doc->loadXML($xml);
$errors = libxml_get_errors();
if(empty($errors)){
return true;
}
$error = $errors[0];
if($error->level < 3){
return true;
}
$explodedxml = explode("r", $xml);
$badxml = $explodedxml[($error->line)-1];
$message = $error->message . ' at line ' . $error->line . '. Bad XML:
' . htmlentities($badxml);
return $message;
}
----
Server IP: 69.147.83.197
Probable Submitter: 67.60.197.213
----
Manual Page -- http://www.php.net/manual/en/class.simplexmlelement.php
Edit -- https://master.php.net/note/edit/107869
Del: integrated -- https://master.php.net/note/delete/107869/integrated
Del: useless -- https://master.php.net/note/delete/107869/useless
Del: bad code -- https://master.php.net/note/delete/107869/bad+code
Del: spam -- https://master.php.net/note/delete/107869/spam
Del: non-english -- https://master.php.net/note/delete/107869/non-english
Del: in docs -- https://master.php.net/note/delete/107869/in+docs
Del: other reasons-- https://master.php.net/note/delete/107869
Reject -- https://master.php.net/note/reject/107869
Search -- https://master.php.net/manage/user-notes.php