Foros del Web » Programando para Internet » PHP »

Problema con Simplexml

Estas en el tema de Problema con Simplexml en el foro de PHP en Foros del Web. Saludos, para la comunidad foros del web de antemano gracias por sus aportes. tengo la siguiente inquietud: estoy trabajando con simplexml todo me funciona muy ...
  #1 (permalink)  
Antiguo 10/10/2011, 07:35
 
Fecha de Ingreso: septiembre-2011
Mensajes: 32
Antigüedad: 12 años, 7 meses
Puntos: 1
Exclamación Problema con Simplexml

Saludos, para la comunidad foros del web

de antemano gracias por sus aportes. tengo la siguiente inquietud:

estoy trabajando con simplexml todo me funciona muy bien excepto, un tag que contiente el siguiente contenido:

<f>&quot;1451213 -pepito perez&quot; &lt;tmp:3026@localhost&gt;</f>

a la hora de leerlo solo me muestra lo siguiente

1451213 -pepito perez

dejando lo demas por fuera y necesito extraer tambien el 3026 antes de la @.

Lo complejo del asunto es que no puedo modificar la estructura de dicho tag. por su colaboración muchas gracias.

Tavo
  #2 (permalink)  
Antiguo 10/10/2011, 10:38
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema con Simplexml

Porque no colocas el código que llevas y el contenido de tu XML (o un poco si es posible) a ver en que podemos ayudarte.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 10/10/2011, 12:33
 
Fecha de Ingreso: septiembre-2011
Mensajes: 32
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Problema con Simplexml

este es el codigo... estoy leyendo el tag <f> que es el que tiene el lio, pues lo demas funciona bien.

$archivo='file.xml';
if (file_exists($archivo)) {
$xml = simplexml_load_file($archivo);

foreach ($xml->f as $asunto)
{
echo $asunto."\n";
}
} else {
echo "Error abriendo ".$archivo;
exit();
}

Gracias por la colaboracion de verdad es un tema urgente.... lo que leo en foros es que se pueden reemplazar los caracteres...
  #4 (permalink)  
Antiguo 10/10/2011, 13:36
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema con Simplexml

Podrías usar html_entity_decode pero ese contenido es de algún namespace de tu XML, al reemplazar los caracteres el resultado sería <tmp:3026@localhost> el cual debe estar en tu XML definido para obtener ese número que quieres. Si mostrarán el XML en estos casos sería mucho más fácil ayudar.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 10/10/2011, 13:55
 
Fecha de Ingreso: septiembre-2011
Mensajes: 32
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Problema con Simplexml

este es el xml... gracias por su ayuda....

<?xml version="1.0" encoding="utf-8"?>
<row>
<d>1</d>
<f>&quot;123456789 - pepito perez&quot; &lt;tmp:3026@localhost&gt;</f>
<ft/>
<fu>8888</fu>
<t>&lt;tmp:987654321@localhost:0000&gt;</t>
<tc>1111111111</tc>
<te>2222222222</te>
<ts>3333333333</ts>
<tt>20</tt>
<y>envio</y>
</row>

cada tag es un registro para un bd, el problema esta en el tag <f> y el <t>
  #6 (permalink)  
Antiguo 10/10/2011, 14:08
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema con Simplexml

ammm no tienes ni el namespace definido. Intenta reemplazando esas entidades a ver si te deja obtener ese número:

Código PHP:
Ver original
  1. <?php
  2. $xml = file_get_contents('file.xml');
  3. $xml = str_replace(array('&lt;', '&gt;'), '', $xml);
  4.  
  5. $sxe = new SimpleXMLElement($xml);
  6.  
  7. foreach ($sxe->f as $asunto) {
  8.     echo $asunto;
  9. }

La otra sería definir el namescape tmp y usar html_entity_decode.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 10/10/2011 a las 14:14
  #7 (permalink)  
Antiguo 10/10/2011, 14:27
 
Fecha de Ingreso: septiembre-2011
Mensajes: 32
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Problema con Simplexml

Andresdzphp... gracias por tu ayuda.... funciono como queria...

Quedo totalmente agradecido y satisfecho con el script....

Saludos.

Tavo.
Bogota - Colombia.

Etiquetas: simplexml
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 20:51.