Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] duda en datos repetido en xml

Estas en el tema de duda en datos repetido en xml en el foro de PHP en Foros del Web. Hola es que tengo un xml que trae informacion y entre esa informacion me repite los datos y al pasarlo en php para leer y ...
  #1 (permalink)  
Antiguo 31/03/2013, 06:57
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 766
Antigüedad: 12 años, 6 meses
Puntos: 10
duda en datos repetido en xml

Hola es que tengo un xml que trae informacion y entre esa informacion me repite los datos y al pasarlo en php para leer y mostrarla pues sale la informacion repetida que forma puedo hacer para que no repida la informacion

gracias antemano
  #2 (permalink)  
Antiguo 31/03/2013, 07:12
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 13 años, 4 meses
Puntos: 31
Respuesta: duda en datos repetido en xml

Al leer tus datos en PHP, deberias agupar en grupos en la consulta. utilizadan GROUP BY
__________________
El talento se educa en la KARMA y el carácter en la tempestad.
Gabriel De Los Santos
  #3 (permalink)  
Antiguo 31/03/2013, 13:58
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 766
Antigüedad: 12 años, 6 meses
Puntos: 10
Respuesta: duda en datos repetido en xml

mmm y de que forma lo puedo ahcer eso haora mismo tengo esto ya echo

este es el xml

Código PHP:
Ver original
  1. <user>
  2.     <user-active>
  3.         <provider>
  4.             <user-view sid="0167" users="demo1" />
  5.             <user-view sid="0137" users="demo2" />
  6.             <user-view sid="0230" users="demo3" />
  7.             <user-view sid="0159" users="demo4" />
  8.             <user-view sid="0167" users="demo1" />
  9.             <user-view sid="0137" users="demo2" />
  10.             <user-view sid="0230" users="demo3" />
  11.             <user-view sid="0159" users="demo4" />
  12.             <user-view sid="0167" users="demo1" />
  13.             <user-view sid="0137" users="demo2" />
  14.             <user-view sid="0230" users="demo3" />
  15.             <user-view sid="0159" users="demo4" />
  16.         </provider>
  17.     </user-active>
  18. </user>

Código PHP:
Ver original
  1. <?php  
  2.  
  3. $xml = simplexml_load_file("archivo.xml");
  4.  
  5. $user = "user-active";
  6. $users = "user-view";
  7.  
  8. foreach($xml->$user->provider->$users as $run) {
  9.  
  10.   $sid = (string)$run->attributes()->sid;
  11.  
  12.   echo "<tr>";
  13.   echo "<td align=\"center\">";
  14.   echo $sid;
  15.   echo "</td>";
  16.   echo "</tr>";
  17.  
  18. }
  19.  
  20. ?>

Última edición por xoceunder; 01/04/2013 a las 16:22
  #4 (permalink)  
Antiguo 01/04/2013, 16:23
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 766
Antigüedad: 12 años, 6 meses
Puntos: 10
Respuesta: duda en datos repetido en xml

alguien tendria alguna idea de lograr esto
  #5 (permalink)  
Antiguo 01/04/2013, 17:16
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 5 meses
Puntos: 793
Respuesta: duda en datos repetido en xml

Puedes hacer algo así:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $xml = '<user>
  4.    <user-active>
  5.        <provider>
  6.            <user-view sid="0167" users="demo1" />
  7.            <user-view sid="0137" users="demo2" />
  8.            <user-view sid="0230" users="demo3" />
  9.            <user-view sid="0159" users="demo4" />
  10.            <user-view sid="0167" users="demo1" />
  11.            <user-view sid="0137" users="demo2" />
  12.            <user-view sid="0230" users="demo3" />
  13.            <user-view sid="0159" users="demo4" />
  14.            <user-view sid="0167" users="demo1" />
  15.            <user-view sid="0137" users="demo2" />
  16.            <user-view sid="0230" users="demo3" />
  17.            <user-view sid="0159" users="demo4" />
  18.        </provider>
  19.    </user-active>
  20. </user>';
  21.  
  22. $sxe = new SimpleXMLElement($xml);
  23. $filtrado = $sxe->xpath('//user-view[not(@sid=preceding-sibling::user-view/@sid)]');
  24.  
  25. foreach ($filtrado as $v) {
  26.     echo $v->attributes()->sid . ' ' . $v->attributes()->users . '<br />';
  27. }

Sin ids repetidos:

Cita:
0167 demo1
0137 demo2
0230 demo3
0159 demo4
__________________
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
  #6 (permalink)  
Antiguo 01/04/2013, 17:54
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 766
Antigüedad: 12 años, 6 meses
Puntos: 10
Respuesta: duda en datos repetido en xml

y si lo hago con esto

$xml = simplexml_load_file("archivo.xml");
  #7 (permalink)  
Antiguo 01/04/2013, 18:07
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 5 meses
Puntos: 793
Respuesta: duda en datos repetido en xml

Es lo mismo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $sxe = simplexml_load_file('test.xml');
  4. $filtrado = $sxe->xpath('//user-view[not(@sid=preceding-sibling::user-view/@sid)]');
  5.  
  6. foreach ($filtrado as $v) {
  7.     echo $v->attributes()->sid . ' ' . $v->attributes()->users . '<br />';
  8. }
__________________
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
  #8 (permalink)  
Antiguo 01/04/2013, 18:52
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 766
Antigüedad: 12 años, 6 meses
Puntos: 10
Respuesta: duda en datos repetido en xml

ok amigo mira esto aver si se puede hacer lo que me indica


ya tengo esto

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Servicio Up</title>
  5. </head>
  6.  
  7. <body>
  8. <table width="200" border="1">
  9.   <tr>
  10.     <td align="center">Canales Activos</td>
  11.   </tr>
  12. <?php  
  13.  
  14. $ip = "192.168.1.1";
  15. $port = "5050";
  16. $user = "user";
  17. $pass = "pass";
  18.  
  19. $xml = simplexml_load_file("http://".$user.":".$pass."@".$ip.":".$port."/archivo.xml");
  20.  
  21. $user = "user-active";
  22. $users = "user-view";
  23.  
  24. foreach($xml->$user->provider->$users as $run) {
  25.  
  26.   $sid = (string)$run->attributes()->sid;
  27.  
  28.   echo "<tr>";
  29.   echo "<td align=\"center\">";
  30.   echo $sid;
  31.   echo "</td>";
  32.   echo "</tr>";
  33. }
  34.  
  35.  ?>
  36. </table>
  37. </body>
  38. </html>

es que el archivo anda protegido
  #9 (permalink)  
Antiguo 02/04/2013, 08:32
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 766
Antigüedad: 12 años, 6 meses
Puntos: 10
Respuesta: duda en datos repetido en xml

ok haora si me funciono con esto

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <title></title>
  4. </head>
  5.  
  6. <body>
  7. <table width="250" border="1" align="center">
  8.   <tr>
  9.     <td align="center">Canales Activos</td>
  10.   </tr>
  11. <?php  
  12. $ip = "192.168.1.1";
  13. $port = "5050";
  14. $user = "user";
  15. $pass = "pass";
  16.  
  17. $xml = simplexml_load_file("http://".$user.":".$pass."@".$ip.":".$port."/archivo.xml");
  18.  
  19. // Leer los Sid Activos del XML
  20.  
  21. $sid = $xml->xpath("//user-view[not(@sid=preceding-sibling::user-view/@sid)]");
  22.  
  23. foreach ($sid as $v) {
  24.   echo "<tr>";
  25.   echo "<td align=\"center\">";
  26.   echo $v->attributes()->sid;
  27.   echo "</td>";
  28.   echo "</tr>";
  29. }
  30.  
  31. ?>
  32. </table>
  33. </body>
  34. </html>

haora otra cosita podria ser posible colocar en orden de menor a manor
  #10 (permalink)  
Antiguo 02/04/2013, 09:58
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 5 meses
Puntos: 793
Respuesta: duda en datos repetido en xml

Puedes usar usort y strnatcmp, algo así antes del foreach:

PHP 5.3.0+

Código PHP:
Ver original
  1. usort($sid, function($a, $b) {
  2.     return strnatcmp($a['sid'], $b['sid']);
  3. });
__________________
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
  #11 (permalink)  
Antiguo 02/04/2013, 10:20
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 766
Antigüedad: 12 años, 6 meses
Puntos: 10
Respuesta: duda en datos repetido en xml

muchas gracias amigo me funciono

Última edición por xoceunder; 02/04/2013 a las 10:55

Etiquetas: repetido, xml
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 06:42.