Generic arrays are now supported
[core.git] / inc / classes / main / parser / xml / class_XmlParser.php
index 63d508a594a31ae39059441aee7f914f7562b839..9374dc61259d96845b99ac183c7c0d741c13d43e 100644 (file)
@@ -4,7 +4,7 @@
  *
  * @author             Roland Haeder <webmaster@ship-simu.org>
  * @version            0.0.0
- * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009, 2010 Core Developer Team
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Core Developer Team
  * @license            GNU GPL 3.0 or any newer version
  * @link               http://www.ship-simu.org
  *
@@ -43,7 +43,7 @@ class XmlParser extends BaseParser implements Parseable {
         * @param       $templateInstance       A CompileableTemplate instance
         * @return      $parserInstance         An instance of this parser
         */
-       public final static function createXmlParser (CompileableTemplate $templateInstance) {
+       public static final function createXmlParser (CompileableTemplate $templateInstance) {
                // Get a new instance
                $parserInstance = new XmlParser();
 
@@ -65,16 +65,19 @@ class XmlParser extends BaseParser implements Parseable {
                // Convert all to UTF8
                if (empty($content)) {
                        // No empty content!
-                       $this->debugOuput('Empty content! Backtrace: <pre>');
+                       $this->debugOutput('Empty content! Backtrace: <pre>');
                        debug_print_backtrace();
-                       $this->debugOuput('</pre>');
+                       $this->debugOutput('</pre>');
                        die();
                } 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
@@ -99,7 +102,7 @@ class XmlParser extends BaseParser implements Parseable {
                // Now parse the XML tree
                if (!xml_parse($xmlParser, $content)) {
                        // Error found in XML!
-                       //* DEBUG: */ die('<pre>'.htmlentities($content).'</pre>');
+                       //* DEBUG: */ die(__METHOD__ . ':<pre>'.htmlentities($content).'</pre>');
                        throw new XmlParserException(array($this, $xmlParser), self::EXCEPTION_XML_PARSER_ERROR);
                } // END - if