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 | |
Base class for sax-based expat parsing extended classes need to overwrite the method setHandlers and implement their own handler methods.
Definition at line 37 of file class.ilSaxParser.php.
| 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 248 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.
Referenced by SurveyImportParserPre38::parse(), SurveyImportParser::parse(), ilXMLChecker::parse(), parse(), and startParsing().
{
return $this->input_type;
}
Here is the caller graph for this function:| ilSaxParser::getXMLContent | ( | ) |
Definition at line 109 of file class.ilSaxParser.php.
Referenced by SurveyImportParserPre38::parse(), SurveyImportParser::parse(), ilXMLChecker::parse(), and parse().
{
return $this->xml_content;
}
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
| 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 {
$this->ilias->raiseError($message, $code);
}
return false;
}
Here is the caller graph for this function:| ilSaxParser::ilSaxParser | ( | $ | a_xml_file = '', |
|
| $ | throwException = false | |||
| ) |
Constructor setup ILIAS global object public.
Definition at line 88 of file class.ilSaxParser.php.
References $ilias, $lng, and $throwException.
Referenced by ilCategoryImportParser::ilCategoryImportParser(), ilExerciseXMLParser::ilExerciseXMLParser(), ilFileXMLParser::ilFileXMLParser(), ilForumImportParser::ilForumImportParser(), ilGroupImportParser::ilGroupImportParser(), ilMailImportParser::ilMailImportParser(), ilMDSaxParser::ilMDSaxParser(), ilModuleReader::ilModuleReader(), ilnetucateResponse::ilnetucateResponse(), ilObjectDefinition::ilObjectDefinition(), ilObjectXMLParser::ilObjectXMLParser(), ilQTIParser::ilQTIParser(), ilSCORMPackageParser::ilSCORMPackageParser(), ilServiceReader::ilServiceReader(), ilStyleDefinition::ilStyleDefinition(), ilStyleImportParser::ilStyleImportParser(), ilUserImportParser::ilUserImportParser(), ilXMLChecker::ilXMLChecker(), ilXMLResultSetParser::ilXMLResultSetParser(), SurveyImportParser::SurveyImportParser(), and SurveyImportParserPre38::SurveyImportParserPre38().
{
global $ilias, $lng;
if($a_xml_file)
{
$this->xml_file = $a_xml_file;
$this->input_type = 'file';
}
$this->throwException = $throwException;
$this->ilias = &$ilias;
$this->lng = &$lng;
}
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->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 ilnetucateResponse, ilXMLChecker, SurveyImportParser, and SurveyImportParserPre38.
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::setHandlers | ( | $ | a_xml_parser | ) |
set event handler should be overwritten by inherited class private
Reimplemented in ilGroupImportParser, ilObjectDefinition, ilStyleDefinition, ilStyleImportParser, ilnetucateResponse, ilCategoryImportParser, ilExerciseXMLParser, ilFileXMLParser, ilForumImportParser, ilContObjParser, ilSCORMPackageParser, ilXMLChecker, ilMailImportParser, ilMDSaxParser, ilMDXMLCopier, ilMDXMLParser, ilQTIParser, SurveyImportParser, SurveyImportParserPre38, ilUserImportParser, ilModuleReader, ilServiceReader, ilObjectXMLParser, and ilXMLResultSetParser.
Definition at line 178 of file class.ilSaxParser.php.
Referenced by startParsing().
{
echo 'ilSaxParser::setHandlers() must be overwritten';
}
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
| $error_handler |
Definition at line 261 of file class.ilSaxParser.php.
References $throwException.
{
$this->throwException = $throwException;
}
| ilSaxParser::setXMLContent | ( | $ | a_xml_content | ) |
Definition at line 103 of file class.ilSaxParser.php.
Referenced by ilExerciseXMLParser::ilExerciseXMLParser(), ilFileXMLParser::ilFileXMLParser(), ilGroupImportParser::ilGroupImportParser(), ilMDXMLCopier::ilMDXMLCopier(), ilMDXMLParser::ilMDXMLParser(), ilObjectXMLParser::ilObjectXMLParser(), and ilXMLResultSetParser::ilXMLResultSetParser().
{
$this->xml_content = $a_xml_content;
$this->input_type = 'string';
}
Here is the caller graph for this function:| ilSaxParser::startParsing | ( | ) |
stores xml data in array
private
| ilSaxParserException | or ILIAS Error |
Reimplemented in ilGroupImportParser, ilStyleImportParser, ilnetucateResponse, ilCategoryImportParser, ilForumImportParser, ilContObjParser, ilSCORMPackageParser, ilXMLChecker, ilMailImportParser, ilQTIParser, SurveyImportParser, SurveyImportParserPre38, and ilUserImportParser.
Definition at line 125 of file class.ilSaxParser.php.
References createParser(), freeParser(), getInputType(), handleError(), openXMLFile(), parse(), setHandlers(), and setOptions().
Referenced by ilModuleReader::getModules(), ilServiceReader::getServices(), ilFileXMLParser::start(), and ilExerciseXMLParser::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:| ilSaxParser::$ilias |
Definition at line 61 of file class.ilSaxParser.php.
Referenced by ilGroupImportParser::__assignMembers(), ilCourseXMLParser::__parseId(), ilGroupImportParser::__parseId(), ilStyleDefinition::getAllTemplates(), ilCategoryImportParser::handlerEndTag(), ilSaxParser(), ilStyleDefinition::ilStyleDefinition(), ilUserImportParser::ilUserImportParser(), ilUserImportParser::importBeginTag(), and ilUserImportParser::importEndTag().
| ilSaxParser::$input_type = null |
Definition at line 46 of file class.ilSaxParser.php.
| ilSaxParser::$lng |
Reimplemented in ilContObjParser, and ilQTIParser.
Definition at line 68 of file class.ilSaxParser.php.
Referenced by ilUserImportParser::getProtocolAsHTML(), ilMDSaxParser::ilMDSaxParser(), ilSaxParser(), ilStyleImportParser::ilStyleImportParser(), ilUserImportParser::ilUserImportParser(), ilUserImportParser::importBeginTag(), ilUserImportParser::importEndTag(), ilUserImportParser::verifyBeginTag(), and ilUserImportParser::verifyEndTag().
| ilSaxParser::$throwException = false |
Definition at line 82 of file class.ilSaxParser.php.
Referenced by ilObjectXMLParser::ilObjectXMLParser(), ilSaxParser(), and setThrowException().
| ilSaxParser::$xml_content = '' |
Definition at line 54 of file class.ilSaxParser.php.
| ilSaxParser::$xml_file |
Definition at line 75 of file class.ilSaxParser.php.
1.7.1