Remove XML Node de un archivo cargado usando el sistema de archivos PHP [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Cómo analiza y procesa HTML / XML en PHP? 29 respuestas Tengo un archivo XML que se lee con PHPfile_get_contents
para que se le puedan hacer otros cambios.
Necesito encontrar y eliminar los nodos<BATCHALLOCATIONS.LIST>
...<BATCHALLOCATIONS.LIST>
(no solo esas dos líneas, sino qué hay entre el nodo completo) en todo el archivo.
Dado que el archivo ya está cargado confile_get_contents
Me gustaría hacer esto sin tener que cargar el archivo nuevamente usandosimpleXML
, o un analizador XML o cualquier otro método (como DOM).
El nodo no tiene un padre específico y aparece al azar.
El archivo XML se exporta desde un software de contabilidad empresarial.
¿Alguna idea sobre cómo lograr esto? ¿Tal vez usando una expresión regular para hacer una búsqueda y reemplazar o algo así?
He estado tratando de hacer esto usando una expresión regular y preg_replace, pero simplemente no puedo hacer que las cosas funcionen.
Aquí hay solo una parte del archivo. El original corre a 10K + líneas.
Esto debería haber funcionado pero no
preg_replace('/^\<BATCHALLOCATIONS.LIST\>(.*?)\<\BATCHALLOCATIONS.LIST\>$/ism','', $newXML);
Estoy tratando de hacer esto sin usar ningún analizador HTML / XML.