Foros del Web » Programando para Internet » PHP »

duda de poder leer linia en un xml

Estas en el tema de duda de poder leer linia en un xml en el foro de PHP en Foros del Web. saludos a ver como me dan una ayuda con este código ya que tengo tiempo tratando de sacarlo ya tengo este código. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 19/09/2011, 20:45
(Desactivado)
 
Fecha de Ingreso: septiembre-2010
Mensajes: 498
Antigüedad: 14 años, 3 meses
Puntos: 5
duda de poder leer linia en un xml

saludos a ver como me dan una ayuda con este código ya que tengo tiempo tratando de sacarlo ya tengo este código.

Código PHP:
Ver original
  1. <?php
  2. $conn = @mysql_connect($dbhost,$dbuser,$dbpass) or die ("Error connecting to database");
  3. mysql_select_db($dbname, $conn);
  4.    
  5. $sql = mysql_query("SELECT * FROM settings WHERE id='1'");
  6. $line=mysql_fetch_array($sql);
  7.     $showuseronline = $line["fetchfromcsp"];
  8.         if ($showuseronline == "1") {
  9.             $i = 0;
  10.             $cspsrv_ip = $line["cspsrv_ip"];
  11.             $cspsrv_port = $line["cspsrv_port"];
  12.             $cspsrv_user = $line["cspsrv_user"];
  13.             $cspsrv_pass = $line["cspsrv_pass"];
  14.             $cspsrv_protocol = $line["cspsrv_protocol"];
  15.             $xml = simplexml_load_file($cspsrv_protocol."://".$cspsrv_user.":".$cspsrv_pass."@".$cspsrv_ip.":".$cspsrv_port."/xmlHandler?command=proxy-users");
  16.             $proxyusers = "proxy-users";
  17.                 foreach($xml->$proxyusers->user as $users) {
  18.                     $y = 0;
  19.                     $activesession = 0;
  20.                     $userstate = "0";
  21.                     foreach($xml->$proxyusers->user[$i]->session as $active) {
  22.                         if ((string)$xml->$proxyusers->user[$i]->session[$y]->attributes()->active == "true") {
  23.                             $userstate = "1";
  24.                             $activesession = $y;
  25.                         }
  26.                         $y++;
  27.                     }
  28.                     $activeusers[] = (string)$xml->$proxyusers->user[$i]->attributes()->name;
  29.                     $activeusersstate[(string)$xml->$proxyusers->user[$i]->attributes()->name] = $userstate;
  30.                     $userinfo[(string)$xml->$proxyusers->user[$i]->attributes()->name."-host"] = (string)$xml->$proxyusers->user[$i]->session[$activesession]->attributes()->host;
  31.                     $userinfo[(string)$xml->$proxyusers->user[$i]->attributes()->name."-duration"] = (string)$xml->$proxyusers->user[$i]->session[$activesession]->attributes()->duration;
  32.                     $i++;
  33.                 }
  34.         }
  35. mysql_close($conn);
  36. ?>

y quiero sacar la linea como esta en la foto



y esto lo uso para hacer un print en php

Código PHP:
Ver original
  1. <td>&nbsp;<? print(" ".$userinfo[$row["usuario"]."-host"]." "); ?>&nbsp;</td>
  2. <td>&nbsp;<? print(" ".$userinfo[$row["usuario"]."-duration"]." "); ?>&nbsp;</td>
  3. <td>&nbsp;<? print(" Muy Pronto "); ?>&nbsp;</td>

aver como podría hacerlo.

Última edición por privatefta; 20/09/2011 a las 12:55
  #2 (permalink)  
Antiguo 21/09/2011, 06:42
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: duda de poder leer linia en un xml

¿Algo así?
Código PHP:
Ver original
  1. <?php
  2. $stringXml = '<?xml version="1.0" encoding="UTF-8"?>
  3. <cws-status-resp ver="1.0">
  4.     <proxy-users count="3" login-failures="2">
  5.         <user name="admin" display-name="admin" sessions="1">
  6.             <session host="208.109.243.3" id="2" count="1/1" active="true" profile="*" client-id="Csp 0.9.0" protocol="Csp" context="Dummy" connected="True" last-zap="Os" idle-time="Os" flags="Fz" avg-ecm-interval="2">
  7.                 <service id="184" cdata="00b8" name="184 Animal Planet" profile="dish" />
  8.             </session>
  9.         </user>
  10.     </proxy-users>
  11. </cws-status-resp>';
  12. $doc = new DOMDocument();
  13. $doc->loadXML($stringXml);
  14. $xpath = new DOMXpath($doc);
  15. $entries = $xpath->query("//service");
  16. foreach($entries as $val){
  17.     if($val->hasAttributes()){
  18.         foreach($val->attributes as $k => $v){
  19.             echo $k . ' = ' . $v->nodeValue . '<br />';
  20.         }
  21.     }
  22. }

Edito: También está esta forma

Código PHP:
Ver original
  1. <?php
  2. $stringXml = '<?xml version="1.0" encoding="UTF-8"?>
  3. <cws-status-resp ver="1.0">
  4.     <proxy-users count="3" login-failures="2">
  5.         <user name="admin" display-name="admin" sessions="1">
  6.             <session host="208.109.243.3" id="2" count="1/1" active="true" profile="*" client-id="Csp 0.9.0" protocol="Csp" context="Dummy" connected="True" last-zap="Os" idle-time="Os" flags="Fz" avg-ecm-interval="2">
  7.                 <service id="184" cdata="00b8" name="184 Animal Planet" profile="dish" />
  8.             </session>
  9.         </user>
  10.     </proxy-users>
  11. </cws-status-resp>';
  12. $doc = new DOMDocument();
  13. $doc->loadXML($stringXml);
  14. $xpath = new DOMXpath($doc);
  15. $entries = $xpath->query("//service");
  16. foreach($entries as $key => $val){
  17.     if($val->hasAttribute('id')){
  18.         echo $val->getAttribute('id');
  19.     }
  20.     if($val->hasAttribute('name')){
  21.         echo $val->getAttribute('name');
  22.     }
  23. }

Evita usar etiquetas cortas <?, te puede dar conflictos con XML.

PD: Trata a la próxima escribir o copiar y pegar el xml o el string a trabajar así uno no se toma mucho tiempo en crear el ambiente para poder ver el resultado.
__________________
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; 21/09/2011 a las 06:58 Razón: Añadir otro código...
  #3 (permalink)  
Antiguo 22/09/2011, 07:37
(Desactivado)
 
Fecha de Ingreso: septiembre-2010
Mensajes: 498
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: duda de poder leer linia en un xml

pero es que son muchos usuarios para yo usar esa forma ya que ejecuto el código que ya tengo trabajando para así cada usuario que este conectado pues hay saco la info y la meto en php.
  #4 (permalink)  
Antiguo 22/09/2011, 09:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: duda de poder leer linia en un xml

Es solo un ejemplo, podrías brindar más información para poder indicarte una forma como podrías mejor trabajarlo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 22/09/2011, 16:08
(Desactivado)
 
Fecha de Ingreso: septiembre-2010
Mensajes: 498
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: duda de poder leer linia en un xml

Ok mira es que tengo este xml donde se print todo los usuarios que están conectado y la información es así.

Código XML:
Ver original
  1. <cws-status-resp ver="1.0">
  2.     <proxy-users count="1" login-failures="0">
  3.         <user name="admin" display-name="admin" sessions="1">
  4.             <session host="208.109.243.3" id="2" count="1/1" active="true" profile="*" client-id="Csp 0.9.0" protocol="Csp" context="Dummy" connected="True" last-zap="Os" idle-time="Os" flags="Fz" avg-ecm-interval="2">
  5.                 <service id="184" cdata="00b8" name="184 Animal Planet" profile="dish" />
  6.             </session>
  7.         </user>
  8.     </proxy-users>
  9. </cws-status-resp>

linea <user = el usuario
linea <session = es la linea de la información del usuario y ya pude sacarle esa información con el código de arriba.
pero la linea <service es la que me falta.

espero verme explicado lo mas mejor que e podido. y gracias a por todo

Etiquetas: linia, mysql, poder, sql, xml, usuarios
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 10:02.