(PHP 4, PHP 5, PHP 7)
xml_set_object — Use XML Parser within an object
$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
.
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.
parser
A reference to the XML parser to use inside the object.
object
The object where to use the XML parser.
Întoarce valoarea TRUE
în cazul
succesului sau FALSE
în cazul eșecului.
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>");
?>
Exemplul de mai sus va afișa:
string(1) "A" array(1) { ["ID"]=> string(5) "hallo" } string(3) "PHP" string(1) "A"