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: 16 años, 1 mes
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($gestor4096);

                
//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