1<?php 2 3declare(strict_types=1); 4 5namespace JMS\Serializer\Exception; 6 7class XmlErrorException extends RuntimeException 8{ 9 /** 10 * @var \LibXMLError 11 */ 12 private $xmlError; 13 14 public function __construct(\LibXMLError $error) 15 { 16 switch ($error->level) { 17 case LIBXML_ERR_WARNING: 18 $level = 'WARNING'; 19 break; 20 21 case LIBXML_ERR_FATAL: 22 $level = 'FATAL'; 23 break; 24 25 case LIBXML_ERR_ERROR: 26 $level = 'ERROR'; 27 break; 28 29 default: 30 $level = 'UNKNOWN'; 31 } 32 33 parent::__construct(sprintf('[%s] %s in %s (line: %d, column: %d)', $level, $error->message, $error->file, $error->line, $error->column)); 34 35 $this->xmlError = $error; 36 } 37 38 public function getXmlError(): \LibXMLError 39 { 40 return $this->xmlError; 41 } 42} 43