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);
}
}