Index: trunk/kernel/units/general/xml_helper.php =================================================================== diff -u -r5514 -r6093 --- trunk/kernel/units/general/xml_helper.php (.../xml_helper.php) (revision 5514) +++ trunk/kernel/units/general/xml_helper.php (.../xml_helper.php) (revision 6093) @@ -23,9 +23,10 @@ xml_set_element_handler( $xml_parser, Array(&$this, 'startElement'), Array(&$this, 'endElement') ); xml_set_character_data_handler( $xml_parser, Array(&$this, 'characterData') ); if (!xml_parse($xml_parser, $xml, 1)) { - trigger_error(sprintf('XML error: %s at line %d'), - xml_error_string(xml_get_error_code($xml_parser)), - xml_get_current_line_number($xml_parser), E_USER_WARNING); + $this->RootElement =& new kXMLNode('ERROR', array('code'=>xml_get_error_code($xml_parser),'message'=>xml_error_string(xml_get_error_code($xml_parser)))); + trigger_error(sprintf('XML error: %s at line %d'), + xml_error_string(xml_get_error_code($xml_parser)), + xml_get_current_line_number($xml_parser), E_USER_WARNING); } xml_parser_free($xml_parser); return $this->RootElement; @@ -67,7 +68,7 @@ var $Attributes = array(); var $Children = array(); var $Data = null; - + var $firstChild = null; var $lastChild = null; /** @@ -82,7 +83,7 @@ * @var int */ var $Position = 0; - + function kXMLNode($name, $attrs = array()) { $this->Name = $name; @@ -103,15 +104,15 @@ { $node_count = count($this->Children); $a_child->Position = $node_count; - + if ($node_count == 0) { $this->firstChild =& $a_child; $this->lastChild =& $a_child; } else { $this->lastChild =& $a_child; } - + $this->Children[] =& $a_child; $a_child->SetParent($this); } @@ -151,7 +152,7 @@ return $false; } } - + function &FindChild($name) { $name = strtoupper($name); @@ -179,7 +180,7 @@ return $child->Data; } } - + /** * Returns next node to this, false in case of end list *