Ver Mensaje Individual
  #15 (permalink)  
Antiguo 21/07/2008, 09:44
Avatar de SUSMO
SUSMO
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: XML Parser en PHP5

Hola a todos!!

Bueno, al fin he acabado la función que comprueba si la información de un elemento de un archivo XML tiene CDATA o no.

Seguramente, haya otra manera más fácil, menos rebuscada y más óptima de comprobarlo pero, después de luchar días con ello el resultado ha sido el que os muestro.
Aquí os la dejo para quien pueda interesarle:

Código PHP:
function _defaultHand ($data) 
{
        
//$this->file es la url del archivo XML
        
$gestor = fopen($this->file, "r");
        if (
$gestor) 
        {
            
$parar = false;
            while (!
feof($gestor) && !$parar) 
            {
                
$bufer = fgets($gestor, 4096);

                
//Si es una línea en blanco. >1 pq el espacio en blanco lo cuenta
                
if (strlen($bufer) > 1)
                {
                    
//Busco las líneas del xml que tengan CDATA
                    
$pos = strrpos($bufer,"<![CDATA[");
                    if (
$pos !== false)
                    {
                        
//Información del buffer sin el cdata
                        
$pos_ini = (int) $pos+9; //<![CDATA[ = 9 carácteres
                        
$pos_fin = strrpos($bufer,"]]>");
                        
$long = $pos_fin-$pos_ini;
                        
$info_bufer = substr($bufer,$pos_ini, $long);

                        
//Comparación de información
                        
if (strcmp(trim($info_bufer),trim($data)) == 0)
                        {
                                     
$parar = true;
                                     
//Aquí va el código que se ejecuta en el caso de encontrar un CDATA en la información
                        
}
                    }
                } 
            }
            
fclose ($gestor);
        }
} 
__________________
Perdida en el mundo del conocimiento