El problema es que necesito saber que elementos del xml contienen el cdata ya que recojo la información, la puedo modificar y luego vuelvo a guardarla en el archivo xml.
Como esta información puede que tenga código html aunque no es obligatório, si no guardo los datos que tenían el cdata con cdata al volver a recuperarlos me peta la aplicación.
Se me ha ocurrido la idea (tal vez chapucilla y lenta pero no se me ocurre otra) de leer el archivo xml para buscar si el elemento que estoy tratando tiene cdata o no.
He estado buscando alguna instrucción de php que me busque dentro de un archivo una cadena pero no la he encontrado así que he optado por leer línea a línea el fichero para buscar si la información que trato en ese momento tiene el cdata.
Pondría el código que he implementado pero ahora mismo no tengo acceso a él :(
Así que, abro el fichero con el
fopen, lo recorro con
fgets y con la función
strpos busco la línea que me intersa para buscar en ella la cadena "<![CDATA["
El
strpos no me encuentra la cadena y a mi modo de ver es problema de la codificación. El xml está codificado con UTF-8 y al buscar la información dentro de cada línea del fichero no me la encuentra ya que según he leído la instrucción de búsqueda trata el fichero con codificación binária. La verdad es que no tengo muy claro el tema de codificación de carácteres y no se como puedo cambiar la codificación de la información extraída del xml para que me la compare con la misma codificación de cuando abro el fichero.
¿Me serviria también html_entity_decode? ¿Qué codificación debo ponerle?