SimpleXMLElement::__toString

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SimpleXMLElement::__toStringDevuelve el contenido como string

Descripción

public SimpleXMLElement::__toString(): string

Devuelve el contenido de texto almacenado directamente en el elemento. No devuelve el contenido de texto almacenado en los elementos hijos.

Parámetros

Esta función no tiene parámetros.

Valores devueltos

Devuelve el contenido como string, o un string vacío en caso de error.

Ejemplos

Ejemplo #1 Obtener el contenido como string

<?php
$xml
= new SimpleXMLElement('<a>1 <b>2 </b>3</a>');
echo
$xml;
?>

El resultado del ejemplo sería:

1 3

Ver también

add a note

User Contributed Notes 2 notes

up
16
mmj at example dot net
7 years ago
__toString() is not intended to be called directly.

Instead, it defines what is returned when the object is cast to string, either explicitly with:

(string)$element

Or implicitly, when used in certain contexts which would cause a conversion to string.
up
11
Patanjali
9 years ago
For those for whom it may not be immediately obvious from the example, the echo is what is forcing __toString() to be used.

However, to assign the text of a node (but not its children) to a variable:

$XML = new SimpleXMLElement('<p>Hello<span> world</span>.<span> Good day!</span></p>');

$Text = $XML->__toString();

is effectively:
$Text = 'Hello.'; // The <span>s are ignored.

Either of:
$Text = $XML->span->__toString();
$Text = $XML->span[0]->__toString();

is effectively:
$Text = ' world'; // Only the first <span> is used.

$Text = $XML->span[1]->__toString();

is effectively:
$Text = ' Good day!'; // Only the second <span> is used.
To Top