issue 2662 coding convention in xml class

git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12225 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ovclas 2012-11-15 01:59:10 +00:00
parent fb0df50f3f
commit 2cb9487ba1
10 changed files with 1924 additions and 1660 deletions

View file

@ -6,7 +6,8 @@
* @package /classes/xml
* @version 0.1
*/
class GeneralXmlParser {
class GeneralXmlParser
{
/**
* result of parse
* @var array
@ -14,78 +15,86 @@ class GeneralXmlParser {
var $output = array();
/**
* Parse a given input to product a object containing parse values.
* @param string $input data to be parsed
* @return array|NULL Returns an object containing parsed values or NULL in case of failure
*/
function parse($input = '') {
$oParser = xml_parser_create('UTF-8');
xml_set_object($oParser, $this);
xml_set_element_handler($oParser, "_tagOpen", "_tagClosed");
xml_set_character_data_handler($oParser, "_tagBody");
* Parse a given input to product a object containing parse values.
* @param string $input data to be parsed
* @return array|NULL Returns an object containing parsed values or NULL in case of failure
*/
function parse($input = '')
{
$oParser = xml_parser_create('UTF-8');
xml_set_object($oParser, $this);
xml_set_element_handler($oParser, "_tagOpen", "_tagClosed");
xml_set_character_data_handler($oParser, "_tagBody");
xml_parse($oParser, $input);
xml_parser_free($oParser);
xml_parse($oParser, $input);
xml_parser_free($oParser);
if(!count($this->output)) return;
$this->output = array_shift($this->output);
if(!count($this->output)) return;
$this->output = array_shift($this->output);
return $this->output;
return $this->output;
}
/**
* Start element handler
* @param resource $parser an instance of parser
* @param string $node_name a name of node
* @param array $attrs attributes to be set
* @return void
*/
function _tagOpen($parser, $node_name, $attrs) {
$obj->node_name = strtolower($node_name);
$obj->attrs = $attrs;
$obj->childNodes = array();
* Start element handler
* @param resource $parser an instance of parser
* @param string $node_name a name of node
* @param array $attrs attributes to be set
* @return void
*/
function _tagOpen($parser, $node_name, $attrs)
{
$obj->node_name = strtolower($node_name);
$obj->attrs = $attrs;
$obj->childNodes = array();
array_push($this->output, $obj);
array_push($this->output, $obj);
}
/**
* Character data handler
* Variable in the last element of this->output
* @param resource $parse an instance of parser
* @param string $body a data to be added
* @return void
*/
function _tagBody($parser, $body) {
//if(!trim($body)) return;
$this->output[count($this->output)-1]->body .= $body;
* Character data handler
* Variable in the last element of this->output
* @param resource $parse an instance of parser
* @param string $body a data to be added
* @return void
*/
function _tagBody($parser, $body)
{
//if(!trim($body)) return;
$this->output[count($this->output)-1]->body .= $body;
}
/**
* End element handler
* @param resource $parse an instance of parser
* @param string $node_name name of xml node
* @return void
*/
function _tagClosed($parser, $node_name) {
$node_name = strtolower($node_name);
$cur_obj = array_pop($this->output);
$parent_obj = &$this->output[count($this->output)-1];
* End element handler
* @param resource $parse an instance of parser
* @param string $node_name name of xml node
* @return void
*/
function _tagClosed($parser, $node_name)
{
$node_name = strtolower($node_name);
$cur_obj = array_pop($this->output);
$parent_obj = &$this->output[count($this->output)-1];
if($parent_obj->childNodes[$node_name])
{
$tmp_obj = $parent_obj->childNodes[$node_name];
if(is_array($tmp_obj)) {
array_push($parent_obj->childNodes[$node_name], $cur_obj);
} else {
$parent_obj->childNodes[$node_name] = array();
array_push($parent_obj->childNodes[$node_name], $tmp_obj);
array_push($parent_obj->childNodes[$node_name], $cur_obj);
}
} else {
$parent_obj->childNodes[$node_name] = $cur_obj;
}
if($parent_obj->childNodes[$node_name])
{
$tmp_obj = $parent_obj->childNodes[$node_name];
if(is_array($tmp_obj))
{
array_push($parent_obj->childNodes[$node_name], $cur_obj);
}
else
{
$parent_obj->childNodes[$node_name] = array();
array_push($parent_obj->childNodes[$node_name], $tmp_obj);
array_push($parent_obj->childNodes[$node_name], $cur_obj);
}
}
else
{
$parent_obj->childNodes[$node_name] = $cur_obj;
}
}
}
?>
/* End of file GeneralXmlParser.class.php */
/* Location: ./classes/xml/GeneralXmlParser.class.php */