Ver Mensaje Individual
  #16 (permalink)  
Antiguo 27/02/2008, 04:54
juanvivo
 
Fecha de Ingreso: junio-2006
Mensajes: 46
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: simplexml_load_file

Si el xml si es valido, lo que pasa es que la id no la tiene en la etiqueta que envuelve a las otras, sin no, ... mejor te pongo un ejemplo por que no se expresarme en los terminos correctos.

Código:
<vpt la=1 lo=2>
	<name></name>
	<car></car>
	<gpk:logs>
        	<gpk:log id="39146139">
          		<gpk:date>fecha</gpk:date>
          		<gpk:type>perfecto</gpk:type>
          		<gpk:fin id="1">nombre</gpk:fin>
          		<gpk:text encoded="False">texto 1</gpk:text>
        	</gpk:log>
        	<gpk:log id="34860048">
          		<gpk:date>fecha2</gpk:date>
          		<gpk:type>perfecto</gpk:type>
          		<gpk:fin id="2">nombre2</gpk:fin>
          		<gpk:text encoded="False">Texto2</gpk:text>
        	</gpk:log>
	</gpk:logs>
</vpt>
<vpt la=3 lo=4>
	<name></name>
	<car></car>
	<gpk:logs>
        	<gpk:log id="39149856">
          		<gpk:date>fecha3</gpk:date>
          		<gpk:type>perfecto</gpk:type>
          		<gpk:fin id="3">nombre3</gpk:fin>
          		<gpk:text encoded="False">texto 3</gpk:text>
        	</gpk:log>
        	<gpk:log id="34863261">
          		<gpk:date>fecha4</gpk:date>
          		<gpk:type>perfecto</gpk:type>
          		<gpk:fin id="4">nombre4</gpk:fin>
          		<gpk:text encoded="False">Texto4</gpk:text>
        	</gpk:log>
	</gpk:logs>
</vpt>
Este es el codigo verdadero. Yo necesito mostrar solo los datos que hay entre las etiquetas <gpk:logs></gpk:logs>, pero solo las del primer <vpt>. El problema que tengo es que hago un bucle siguiendo las pistas que me habeis ido dando para mostrarlos asi, por mostraros una de las formas que he probado:

Código:
        	$etiquetas = $xml->xpath( "//c:log" );
		$numero = count ($etiquetas);
		
                for ( $i = 0 ; $i <= $numero ; $i ++){
                
               $ldate = $xml->xpath('//c:date');
	       echo $ldate[$i].'</br>';
Pero esto en vez de mostrarme los date de solo el <gpk:logs> de la primera etiqueta (<vpt la=1 lo=2>) me muestra todos los que hay en todas las etiquetas (fecha1,fecha2,fecha3,fecha4...etc)

Como puedo hacerlo para que solo me devuelva fecha1 y fecha 2 que son los que estan dentro de las primeras <gpk:logs>?

MUchisimas gracias por vuestra ayuda.

Última edición por juanvivo; 27/02/2008 a las 06:33