Foros del Web » Programando para Internet » PHP »

Ayuda SimpleXML

Estas en el tema de Ayuda SimpleXML en el foro de PHP en Foros del Web. Hola: Espero que tengan un super maravilloso día. Bueno el motivo de mi visita al foro lo explico a continuación: Estoy usando php5 Me gustaría ...
  #1 (permalink)  
Antiguo 11/07/2008, 13:54
 
Fecha de Ingreso: septiembre-2007
Mensajes: 5
Antigüedad: 16 años, 6 meses
Puntos: 0
Exclamación Ayuda SimpleXML

Hola:

Espero que tengan un super maravilloso día.

Bueno el motivo de mi visita al foro lo explico a continuación:

Estoy usando php5

Me gustaría saber cómo hacerle para leer e imprimir en pantalla sólo el último registro xml.

Por ejemplo si tengo este archivo:

Código HTML:
<?xml version="1.0" encoding="utf-8"?>
  <ventas xmlns="MiXml">

<tienda>

	<producto>
		<descripcion>jabón</descripcion>
		<precio>12.99</precio>
		<codigo>38729099</codigo>
	</producto>
	
	<producto>
		<descripcion>sopa</descripcion>
		<precio>5.90</precio>
		<codigo>27836110</codigo>
	</producto>
	
	<producto>
		<descripcion>refresco 600 ml.</descripcion>
		<precio>6.50</precio>
		<codigo>67639862</codigo>
	</producto>
	
	<producto>
		<descripcion>sabritas</descripcion>
		<precio>5.00</precio>
		<codigo>98346751</codigo>
	</producto>
	
</tienda> 
para imprimir sólo el último registro que sería:

Sabritas
5.00
98346751

¿Cómo le haría?

Actualmente tengo este código en php usando SimpleXML:

Código PHP:
<?php
// Carga una cadena XML desde un archivo...
$xmlstr file_get_contents'RegistroProductos.xml' );
$cliente simplexml_load_string$xmlstr );

// Carga un archivo XML
$cliente simplexml_load_file'RegistroProductos.xml' );

// Carga una cadena XML desde un archivo...
$xmlstr file_get_contents'RegistroProductos.xml' );
$cliente = new SimpleXMLElement$xmlstr );

// Carga un archivo XML
$cliente = new SimpleXMLElement('RegistroProductos.xml'nulltrue);


foreach( 
$tienda->tienda as $tienda 
             {
                   echo 
"<br>" $tienda->descripcion"</br>";
                   echo 
"<br>" $tienda->precio"</br>";
                   echo 
"<br>" $tienda->codigo"</br>";
     
             }                           
$item $apod->channel->item[1];
$descripcion $apod->channel->item[1]->description;
?>

pero con esto se muestran todos los registros, y yo quiero mostrar sólo el último.

¿Cómo le haría? ayudenme.
Ya sea con DOMXML o con SimpleXML, con cualquiera de los 2 está bien.

Gracias de antemano.

Saludos.
  #2 (permalink)  
Antiguo 11/07/2008, 14:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Ayuda SimpleXML

Hola nancypaola_25,

Lo que podrías hacer es insertar los datos en un arreglo, y posteriormente usar array_pop para sacar el último elemento del arreglo.

Saludos.
  #3 (permalink)  
Antiguo 12/07/2008, 10:49
 
Fecha de Ingreso: septiembre-2007
Mensajes: 5
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta Respuesta: Ayuda SimpleXML

Gracias GatorV, un último favor, ¿podrías explicarme cómo hacer ese arreglo, (codigo)?, suponiendo que el archivo xml variara del numero de registros, y no siempre se supiera cuántos registros contiene el archivo.
  #4 (permalink)  
Antiguo 13/07/2008, 18:41
 
Fecha de Ingreso: septiembre-2007
Mensajes: 5
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Ayuda SimpleXML

Gracias ya lo solucioné. Y No con arreglos, si no agregandole un nodo a cada registro <id>1</id>, y así con un ciclo for, comparar el valor más grande de los id, y sacar el último.
mil gracias Gracias GatorV.
Saludos.
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 09:57.