ILIAS  Release_3_10_x_branch Revision 61812
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilSaxParser Class Reference

Base class for sax-based expat parsing extended classes need to overwrite the method setHandlers and implement their own handler methods. More...

+ Inheritance diagram for ilSaxParser:
+ Collaboration diagram for ilSaxParser:

Public Member Functions

 ilSaxParser ($a_xml_file= '', $throwException=false)
 Constructor setup ILIAS global object public.
 setXMLContent ($a_xml_content)
 getXMLContent ()
 getInputType ()
 startParsing ()
 stores xml data in array
 createParser ()
 create parser
 setOptions ($a_xml_parser)
 set parser options
 setHandlers ($a_xml_parser)
 set event handler should be overwritten by inherited class private
 openXMLFile ()
 open xml file
 parse ($a_xml_parser, $a_fp=null)
 parse xml file
 freeParser ($a_xml_parser)
 free xml parser handle
 setThrowException ($throwException)
 set error handling

Data Fields

 $input_type = null
 $xml_content = ''
 $ilias
 $lng
 $xml_file
 $throwException = false

Protected Member Functions

 handleError ($message, $code)
 use given error handler to handle error message or internal ilias error message handle

Detailed Description

Base class for sax-based expat parsing extended classes need to overwrite the method setHandlers and implement their own handler methods.

Author
Stefan Meyer <smeyer>
Version
Id:
class.ilSaxParser.php 15993 2008-02-14 16:40:10Z wrandels

Definition at line 37 of file class.ilSaxParser.php.

Member Function Documentation

ilSaxParser::createParser ( )

create parser

private

Definition at line 154 of file class.ilSaxParser.php.

References handleError().

Referenced by ilnetucateResponse\startParsing(), and startParsing().

{
$xml_parser = xml_parser_create("UTF-8");
if($xml_parser == false)
{
$this->handleError("Cannot create an XML parser handle",$this->ilias->error_obj->FATAL);
}
return $xml_parser;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilSaxParser::freeParser (   $a_xml_parser)

free xml parser handle

private

Definition at line 255 of file class.ilSaxParser.php.

Referenced by ilnetucateResponse\startParsing(), and startParsing().

{
if(!xml_parser_free($a_xml_parser))
{
$this->ilias->raiseError("Error freeing xml parser handle ",$this->ilias->error_obj->FATAL);
}
}

+ Here is the caller graph for this function:

ilSaxParser::getInputType ( )

Definition at line 114 of file class.ilSaxParser.php.

References $input_type.

Referenced by ilXMLChecker\parse(), SurveyImportParser\parse(), SurveyImportParserPre38\parse(), parse(), and startParsing().

{
}

+ Here is the caller graph for this function:

ilSaxParser::getXMLContent ( )

Definition at line 109 of file class.ilSaxParser.php.

References $xml_content.

Referenced by ilXMLChecker\parse(), SurveyImportParser\parse(), SurveyImportParserPre38\parse(), and parse().

{
}

+ Here is the caller graph for this function:

ilSaxParser::handleError (   $message,
  $code 
)
protected

use given error handler to handle error message or internal ilias error message handle

Parameters
string$message
string$code

Definition at line 234 of file class.ilSaxParser.php.

Referenced by createParser(), openXMLFile(), parse(), and startParsing().

{
if ($this->throwException) {
require_once ('./classes/class.ilSaxParserException.php');
throw new ilSaxParserException ($message, $code);
} else {
if (is_object($this->ilias))
{
$this->ilias->raiseError($message, $code);
}
else
{
die($message);
}
}
return false;
}

+ Here is the caller graph for this function:

ilSaxParser::openXMLFile ( )

open xml file

private

Definition at line 187 of file class.ilSaxParser.php.

References handleError().

Referenced by startParsing().

{
if(!($fp = fopen($this->xml_file,'r')))
{
$this->handleError("Cannot open xml file \"".$this->xml_file."\"",$this->ilias->error_obj->FATAL);
}
return $fp;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilSaxParser::parse (   $a_xml_parser,
  $a_fp = null 
)

parse xml file

private

Reimplemented in SurveyImportParserPre38, SurveyImportParser, ilnetucateResponse, and ilXMLChecker.

Definition at line 200 of file class.ilSaxParser.php.

References $data, getInputType(), getXMLContent(), and handleError().

Referenced by startParsing().

{
switch($this->getInputType())
{
case 'file':
while($data = fread($a_fp,4096))
{
$parseOk = xml_parse($a_xml_parser,$data,feof($a_fp));
}
break;
case 'string':
$parseOk = xml_parse($a_xml_parser,$this->getXMLContent());
break;
}
if(!$parseOk
&& (xml_get_error_code($a_xml_parser) != XML_ERROR_NONE))
{
$errorCode = xml_get_error_code($a_xml_parser);
$line = xml_get_current_line_number($a_xml_parser);
$col = xml_get_current_column_number($a_xml_parser);
$this->handleError("XML Parse Error: ".xml_error_string($errorCode)." at line ".$line.", col ". $col . " (Code: ".$errorCode.")" ,$this->ilias->error_obj->FATAL);
}
return true;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilSaxParser::setOptions (   $a_xml_parser)

set parser options

private

Definition at line 169 of file class.ilSaxParser.php.

Referenced by ilnetucateResponse\startParsing(), and startParsing().

{
xml_parser_set_option($a_xml_parser,XML_OPTION_CASE_FOLDING,false);
}

+ Here is the caller graph for this function:

ilSaxParser::setThrowException (   $throwException)

set error handling

Parameters
$error_handler

Definition at line 268 of file class.ilSaxParser.php.

References $throwException.

{
$this->throwException = $throwException;
}
ilSaxParser::setXMLContent (   $a_xml_content)
ilSaxParser::startParsing ( )

stores xml data in array

private

Exceptions
ilSaxParserExceptionor ILIAS Error

Reimplemented in ilUserImportParser, ilQTIParser, ilContObjParser, SurveyImportParserPre38, SurveyImportParser, ilnetucateResponse, ilGroupXMLParser, ilForumImportParser, ilMailImportParser, ilSCORMPackageParser, ilXMLChecker, ilCategoryImportParser, ilStyleImportParser, and ilPluginReader.

Definition at line 125 of file class.ilSaxParser.php.

References createParser(), freeParser(), getInputType(), handleError(), openXMLFile(), parse(), setHandlers(), and setOptions().

Referenced by ilMD\cloneMD(), ilModuleReader\getModules(), ilServiceReader\getServices(), ilObjCourseGUI\importFileObject(), ilExerciseXMLParser\start(), and ilFileXMLParser\start().

{
$xml_parser = $this->createParser();
$this->setOptions($xml_parser);
$this->setHandlers($xml_parser);
switch($this->getInputType())
{
case 'file':
$fp = $this->openXMLFile();
$this->parse($xml_parser,$fp);
break;
case 'string':
$this->parse($xml_parser);
break;
default:
$this->handleError("No input type given. Set filename in constructor or choose setXMLContent()",
$this->ilias->error_obj->FATAL);
break;
}
$this->freeParser($xml_parser);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Field Documentation

ilSaxParser::$input_type = null

Definition at line 46 of file class.ilSaxParser.php.

Referenced by getInputType().

ilSaxParser::$throwException = false
ilSaxParser::$xml_content = ''

Definition at line 54 of file class.ilSaxParser.php.

Referenced by getXMLContent().

ilSaxParser::$xml_file

Definition at line 75 of file class.ilSaxParser.php.


The documentation for this class was generated from the following file: