simplexml_load_string

(PHP 5, PHP 7)

simplexml_load_string Interpreta un string de XML en un objeto

Descripción

simplexml_load_string ( string $data [, string $class_name = "SimpleXMLElement" [, int $options = 0 [, string $ns = "" [, bool $is_prefix = FALSE ]]]] ) : SimpleXMLElement

Toma un string XML correcto y lo retorna como objeto.

Parámetros

data

Un string XML correcto

class_name

Este parámetro opcional puede ser usado cuando se necesita que simplexml_load_file() retorne un objeto de la clase especificada. Esa clase debe extender de la clase SimpleXMLElement.

options

Desde PHP 5.1.0 y Libxml 2.6.0 puede usarse options para especificar parámetros Libxml adicionales.

ns

El prefijo del espacio de nombres o un URI.

is_prefix

TRUE si ns es un prefijo, FALSE si es un URI; por defecto es FALSE.

Valores devueltos

Devuelve un object de tipo SimpleXMLElement cuyas propiedades contienen los datos del documento XML, o FALSE en caso de error.

Advertencia

Esta función puede devolver el valor booleano FALSE, pero también puede devolver un valor no booleano que se evalúa como FALSE. Por favor lea la sección sobre Booleanos para más información. Use el operador === para comprobar el valor devuelto por esta función.

Errores/Excepciones

Produce un mensaje de error E_WARNING para cada error encontrado en los datos XML.

Sugerencia

Usar libxml_use_internal_errors() para suprimir todos los errores XML y libxml_get_errors() para iterar sobre cada uno de ellos posteriormente.

Historial de cambios

Versión Descripción
5.2.0 Se añadió el parámetro opcional is_prefix.

Ejemplos

Ejemplo #1 Interpreta un string XML

<?php
$string 
= <<<XML
<?xml version='1.0'?> 
<document>
 <title>¿Cuarenta qué?</title>
 <from>Joe</from>
 <to>Jane</to>
 <body>
  Sé que esa es la respuesta pero, ¿cuál es la pregunta?
 </body>
</document>
XML;

$xml simplexml_load_string($string);

print_r($xml);
?>

El resultado del ejemplo sería:

SimpleXMLElement Object
(
  [titulo] => ¿Cuarenta qué?
  [de] => Joe
  [para] => Jane
  [mensaje] => Sé que esa es la respuesta pero, ¿cuál es la pregunta?
)

En este punto, se puede usar $xml->mensaje y similares.

Ver también