GoLang xml_set_object

request it (316)
GoLang replacement for PHP's xml_set_object [edit | history]



Do you know a GoLang replacement for PHP's xml_set_object? Write it!

PHP xml_set_object

PHP original manual for xml_set_object [ show | php.net ]

xml_set_object

(PHP 4, PHP 5, PHP 7)

xml_set_objectUse XML Parser within an object

Description

bool xml_set_object ( resource $parser , object &$object )

This function allows to use parser inside object. All callback functions could be set with xml_set_element_handler() etc and assumed to be methods of object.

Caution

In addition to calling xml_parser_free() when the parsing is finished, as of PHP 7.0.0 it is necessary to also explicitly unset the reference to parser to avoid memory leaks.

Parameters

parser

A reference to the XML parser to use inside the object.

object

The object where to use the XML parser.

Return Values

Returns TRUE on success or FALSE on failure.

Examples

Example #1 xml_set_object() example

<?php
class XMLParser
{
    private 
$parser;

    function 
__construct() 
    {
        
$this->parser xml_parser_create();

        
xml_set_object($this->parser$this);
        
xml_set_element_handler($this->parser"tag_open""tag_close");
        
xml_set_character_data_handler($this->parser"cdata");
    }

    function 
__destruct()
    {
        
xml_parser_free($this->parser);
        unset(
$this->parser);
    }

    function 
parse($data
    {
        
xml_parse($this->parser$data);
    }

    function 
tag_open($parser$tag$attributes
    {
        
var_dump($tag$attributes); 
    }

    function 
cdata($parser$cdata
    {
        
var_dump($cdata);
    }

    function 
tag_close($parser$tag
    {
        
var_dump($tag);
    }
}

$xml_parser = new XMLParser();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
?>

The above example will output:

string(1) "A"
array(1) {
  ["ID"]=>
  string(5) "hallo"
}
string(3) "PHP"
string(1) "A"