Foros del Web » Programando para Internet » PHP »

DOM XML, localizar y reemplazar nodo

Estas en el tema de DOM XML, localizar y reemplazar nodo en el foro de PHP en Foros del Web. Hola amigos. Tengo un XML con una estructura tal que así: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código XML: Ver original <Accesos > <Acceso idCliente = "int" >   ...
  #1 (permalink)  
Antiguo 29/11/2011, 13:22
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Exclamación DOM XML, localizar y reemplazar nodo

Hola amigos.

Tengo un XML con una estructura tal que así:

Código XML:
Ver original
  1. <Accesos>
  2. <Acceso idCliente="int">
  3.     <idUsuario>int</idUsuario>
  4.     <Tiempo>double</Tiempo>
  5.     <Timestamp>int</Timestamp>
  6.     <Video>int</Video>
  7. </Acceso>
  8. <Acceso idCliente="int">
  9.     <idUsuario>int</idUsuario>
  10.     <Tiempo>double</Tiempo>
  11.     <Timestamp>int</Timestamp>
  12.     <Video>int</Video>
  13. </Acceso>
  14. </Accesos>

Necesito llegar a <Tiempo> y <Timestamp> y reemplazarlo con otro valor. Tengo este código hecho, pero estoy atascado:

Código PHP:
Ver original
  1. if (file_exists('log.xml')) {
  2.                     $xml = new DOMDocument;
  3.                     $xml->load("log.xml");
  4.                     $acceso = $xml->getElementsByTagName('Acceso');
  5.                    
  6.                     foreach($acceso as $item) {
  7.                         if((int)$item->getAttribute('idCliente') === (int)$cliente) {
  8.                            
  9.                             $nodo = (int)$item->getElementsByTagName('idUsuario')->item(0)->nodeValue;
  10.                             if($nodo == $usuario) {
  11.                                 $video = $item->getElementsByTagName('idVideo')->item(0)->nodeValue;
  12.                                 $tiempotmp = $item->getElementsByTagName('Tiempo')->item(0)->nodeValue;
  13.                                 $timestamp = $item->getElementsByTagName('Timestamp')->item(0)->nodeValue;
  14.                                
  15.                                 if($video == $clip) {
  16.                                     // Atascado aquí.
  17.                                     $tiempo = $tiempotmp + $addTime;
  18.                                     $nuevoelement = $acceso->createElement("Tiempo",$tiempo);
  19.                                     $nodonuevo = $item->appendChild($nuevoelement);
  20.                                 }
  21.                                
  22.                             }
  23.                         }
  24.                     }
  25.                    
  26.             }

Como véis el comentario estoy atascado al hacer if(video == clip), y obviamente al cumplir las tres condiciones expuestas, necesito cambiar el nodo <Tiempo> y <Timestamp> con nuevos valores.

Alguien me ayuda por dios!!!?

Gracias y un saludo.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.

Última edición por CHuLoSoY; 29/11/2011 a las 13:32

Etiquetas: dom, localizar, nodo, reemplazar, 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 08:59.