X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fparser%2Fxml%2Fclass_XmlParser.php;h=82d0d15a81985edfcc12ec84c0faccae2c360687;hb=27e0403074124968ff6588735afb0e1d7577ab76;hp=fa674b5369ef662592721679b1bd058977ee48f6;hpb=4b88c118b615335d06bd74e444173d21aef4406c;p=core.git diff --git a/inc/classes/main/parser/xml/class_XmlParser.php b/inc/classes/main/parser/xml/class_XmlParser.php index fa674b53..82d0d15a 100644 --- a/inc/classes/main/parser/xml/class_XmlParser.php +++ b/inc/classes/main/parser/xml/class_XmlParser.php @@ -2,11 +2,11 @@ /** * A Xml Parser class * - * @author Roland Haeder + * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2011 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Core Developer Team * @license GNU GPL 3.0 or any newer version - * @link http://www.ship-simu.org + * @link http://www.shipsimu.org * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -65,23 +65,26 @@ class XmlParser extends BaseParser implements Parseable { // Convert all to UTF8 if (empty($content)) { // No empty content! - $this->debugOuput('Empty content! Backtrace:
');
+			self::createDebugInstance(__CLASS__)->debugOutput('Empty content! Backtrace: 
');
 			debug_print_backtrace();
-			$this->debugOuput('
'); - die(); + self::createDebugInstance(__CLASS__)->debugOutput('
'); + exit(); } elseif (function_exists('recode')) { // Recode found, so use it $content = recode('html..utf8', $content); + } elseif (function_exists('mb_convert_encoding')) { + // Use mb_convert_encoding() + $content = mb_convert_encoding($content, 'UTF-8', 'auto'); } else { // @TODO We need to find a fallback solution here - $this->partialStub('Cannot find recode extension!'); + $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'); @@ -93,13 +96,13 @@ class XmlParser extends BaseParser implements Parseable { xml_set_object($xmlParser, $templateInstance); // Set handler call-backs - xml_set_element_handler($xmlParser, 'startElement', 'endElement'); + xml_set_element_handler($xmlParser, 'startElement', 'finishElement'); xml_set_character_data_handler($xmlParser, 'characterHandler'); // Now parse the XML tree if (!xml_parse($xmlParser, $content)) { // Error found in XML! - //* DEBUG: */ die('
'.htmlentities($content).'
'); + //* DEBUG: */ exit(__METHOD__ . ':
'.htmlentities($content).'
'); throw new XmlParserException(array($this, $xmlParser), self::EXCEPTION_XML_PARSER_ERROR); } // END - if