X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=framework%2Fmain%2Fclasses%2Fparser%2Fxml%2Fclass_XmlParser.php;h=28ba4a8b607ae17a5d5b6a95156d9ded8a7b6723;hb=67e23484671df35fbb0436fb3dc66659a9f41a5f;hp=12808efb7c2bba263d88838820712308c1378f6f;hpb=f57dd51863ec9baacba447d76b46d5c709b9b02e;p=core.git diff --git a/framework/main/classes/parser/xml/class_XmlParser.php b/framework/main/classes/parser/xml/class_XmlParser.php index 12808efb..28ba4a8b 100644 --- a/framework/main/classes/parser/xml/class_XmlParser.php +++ b/framework/main/classes/parser/xml/class_XmlParser.php @@ -7,12 +7,15 @@ use Org\Mxchange\CoreFramework\Parser\BaseParser; use Org\Mxchange\CoreFramework\Parser\Parseable; use Org\Mxchange\CoreFramework\Template\CompileableTemplate; +// Import SPL stuff +use \InvalidArgumentException; + /** * A Xml Parser class * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2019 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2020 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.shipsimu.org * @@ -30,11 +33,6 @@ use Org\Mxchange\CoreFramework\Template\CompileableTemplate; * along with this program. If not, see . */ class XmlParser extends BaseParser implements Parseable { - // Exception constants - const EXCEPTION_XML_PARSER_ERROR = 0x1e0; - const EXCEPTION_XML_NODE_UNKNOWN = 0x1e1; - const EXCEPTION_XML_NODE_MISMATCH = 0x1e2; - /** * Protected constructor * @@ -69,14 +67,11 @@ class XmlParser extends BaseParser implements Parseable { * @return void * @throws XmlParserException If an XML error was found */ - public function parseXmlContent ($content) { + public function parseXmlContent (string $content) { // Convert all to UTF8 if (empty($content)) { - // No empty content! - self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('Empty content! Backtrace:
');
-			debug_print_backtrace();
-			self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('
'); - exit(); + // No empty content + throw new InvalidArgumentException('content is empty'); } elseif (function_exists('recode')) { // Recode found, so use it $content = recode('html..utf8', $content); @@ -86,22 +81,19 @@ class XmlParser extends BaseParser implements Parseable { } else { // @TODO We need to find a fallback solution here $this->partialStub('Cannot find recode/mbstring extension!'); - } // END - if + } // Get an XML parser $xmlParser = xml_parser_create(); // Force case-folding to on - xml_parser_set_option($xmlParser, XML_OPTION_CASE_FOLDING, true); + xml_parser_set_option($xmlParser, XML_OPTION_CASE_FOLDING, TRUE); // Set UTF-8 xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, 'UTF-8'); - // Get instance (we need this :( ) - $templateInstance = $this->getTemplateInstance(); - // Set object - xml_set_object($xmlParser, $templateInstance); + xml_set_object($xmlParser, $this->getTemplateInstance()); // Set handler call-backs xml_set_element_handler($xmlParser, 'startElement', 'finishElement'); @@ -109,10 +101,10 @@ class XmlParser extends BaseParser implements Parseable { // Now parse the XML tree if (!xml_parse($xmlParser, $content)) { - // Error found in XML! + // Error found in XML //* DEBUG: */ exit(__METHOD__ . ':
'.htmlentities($content).'
'); - throw new XmlParserException(array($this, $xmlParser), self::EXCEPTION_XML_PARSER_ERROR); - } // END - if + throw new XmlParserException(array($this, $xmlParser), Parseable::EXCEPTION_XML_PARSER_ERROR); + } // Free the parser xml_parser_free($xmlParser);