xml_set_object

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

xml_set_objectConfigura un objeto como analizador XML

Advertencia

Esta función ha sido declarada OBSOLETA a partir de PHP 8.4.0. Su uso está totalmente desaconsejado.

Descripción

#[\Deprecated]
xml_set_object(XMLParser $parser, object $object): true

Permite que el analizador parser sea utilizable desde un objeto. Todos los métodos de retrollamada, asignados por xml_set_element_handler(), serán los métodos de este objeto.

Parámetros

parser

Una referencia de analizador XML para usar en el objeto.

object

El objeto en el que se debe usar el analizador XML.

Valores devueltos

Siempre devuelve true.

Historial de cambios

Versión Descripción
8.4.0 Esta función está ahora deprecada, pase en su lugar valores callable apropiados a xml_set_()
8.0.0 parser expects an XMLParser instance now; previously, a valid xml resource was expected.

Ejemplos

Ejemplo #1 Ejemplo con xml_set_object()

<?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>");
?>

El resultado del ejemplo sería:

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