- // Convert all to UTF8
- if (function_exists('recode')) {
- $content = recode("html..utf8", $content);
- } else {
- // @TODO We need to find a fallback solution here
- $this->partialStub('Cannot find recode 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);
-
- // Set object
- xml_set_object($xmlParser, $this);
-
- // Set handler call-backs
- xml_set_element_handler($xmlParser, 'startElement', 'endElement');
- xml_set_character_data_handler($xmlParser, 'characterHandler');
-
- // Now parse the XML tree
- if (!xml_parse($xmlParser, $content)) {
- // Error found in XML!
- //die('<pre>'.htmlentities($content).'</pre>');
- throw new XmlParserException(array($this, $xmlParser), BaseHelper::EXCEPTION_XML_PARSER_ERROR);
- } // END - if
+ // Get a XmlParser instance
+ $parserInstance = ObjectFactory::createObjectByConfiguredName('xml_parser_class', array($this));