Foros del Web » Programando para Internet » PHP »

simplexml_load_string

Estas en el tema de simplexml_load_string en el foro de PHP en Foros del Web. Hola a tod@s... Estoy reciendo estructuras tipo esto: Código HTML: Array ( [ServicioEntregaResult] => Array ( [ApplicationState] => Array ( [OperacionExitosa] => 1 [Novedad] => ...
  #1 (permalink)  
Antiguo 11/01/2011, 12:43
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
Exclamación simplexml_load_string

Hola a tod@s...

Estoy reciendo estructuras tipo esto:

Código HTML:
Array
(
    [ServicioEntregaResult] => Array
        (
            [ApplicationState] => Array
                (
                    [OperacionExitosa] => 1
                    [Novedad] => -
                )

            [Dato] => 123456
)

)
Requiero que eso que recibo se vea como un xml, o poder construir un xml.

He estado leyendo y encuentro módulos en php como el de simplexml_load_string, pero este me arroja de hecho un resultado como el que recibo.

Código HTML:
SimpleXMLElement Object ( [0] => Text1 & XML entities ) SimpleXMLElement Object ( ) Text1 & XML entitiesText2 & raw data
Este es el script de ejemplo que estoy utilizando

Código PHP:
$xml simplexml_load_string('<foo>Text1 &amp; XML entities</foo>');
print_r($xml);
/*
SimpleXMLElement Object
(
    [0] => Text1 & XML entities
)
*/

$xml2 simplexml_load_string('<foo><![CDATA[Text2 & raw data]]></foo>');
print_r($xml2);
/*
SimpleXMLElement Object
(
)
*/
// Where's my CDATA?

// Let's try explicit casts
print_r( (string)$xml );
print_r( (string)$xml2 );
/*
Text1 & XML entities
Text2 & raw data
*/
// Much better 
Cómo hago para que esa estructura, o el texto quede como un xml? Alguna idea?

Gracias!!!
  #2 (permalink)  
Antiguo 11/01/2011, 14:19
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: simplexml_load_string

Podrías ir iterando el arreglo para que vaya creando la estructura con addChild de SimpleXML.

Edito: de esta forma lo puedes hacer
Código PHP:
Ver original
  1. <?php
  2. $array = array(
  3.     'ServicioEntregaResult' => array(
  4.         'ApplicationState' => array(
  5.             'OperacionExitosa' => 1,
  6.             'Novedad' => '-'
  7.         ),
  8.         'Dato' => 123456
  9.     )
  10. );
  11. function convertArr($arr){
  12.     $convert = '';
  13.     foreach($arr as $key => $val){
  14.         $convert .= is_array($val)
  15.             ? '<' . $key . '>' . convertArr($val) . '</' . $key . '>' . PHP_EOL
  16.             : '<' . $key . '>' . $val . '</' . $key . '>' . PHP_EOL;
  17.     }
  18.     return $convert;
  19. }
  20. $xml = convertArr($array);
  21. $fixXml = new SimpleXMLElement($xml);
  22. echo $fixXml->asXML();
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 11/01/2011 a las 14:50

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:15.