xml_set_object

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

xml_set_objectConfigura un objeto como analizador XML

Advertencia

Esta función está OBSOLETA a partir de PHP 8.4.0. Depender de esta función está altamente desaconsejado.

Descripción

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

Permite utilizar parser dentro de object. Todas las funciones de retrollamada podrán ser definidas con xml_set_element_handler(), etc., y se considerarán métodos de object.

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

Retorna siempre 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 ahora espera una instancia de XMLParser en lugar de un resource xml.

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 ejemplo anterior mostrará:

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