php8.5
Home/ Manual/ xml / functions/ xml_set_object

xml_set_object

PHP function Deprecated as of PHP 8.4.0 Edit on GitHub ✎

(PHP 4, PHP 5, PHP 7, PHP 8)

Use XML Parser within an object

Function-8-4-0

Description

xml_set_object(XMLParser $parser, object $object): true

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.

Parameters

parser

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

object

The object where to use the XML parser.

Return Values

Always

Changelog

VersionDescription
8.4.0This function is now deprecated, instead pass proper callable values to xml_set_()

Examples

xml_set_object() example

php
<?php
class CustomXMLParser
{
    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 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 CustomXMLParser();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
?>

The above example will output:

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

Source: reference/xml/functions/xml-set-object.xml · from the official PHP manual (php/doc-en)