VER EDITS en la parte inferior para mostrar más EXACTA DE SALIDA DE ERRORESPHP - error de análisis SimpleXML
estoy analizar un poco grandes archivos XML (~ 15 MB) con PHP por primera vez usando SimpleXML. Los archivos son resultados de la búsqueda del vuelo por lo que tienen atributos largos (enlaces de vuelta en Kayak; ejemplo:
"/book/flightcode=1238917408.NxJI6G.0.F.ORBITZAIR,ORBITZAIR.0.f36f1ea92513977249aa695112410052 & sid = 26-Vu01v7ilzhSAjPVLZ3Ul "
SimpleXML lanza este error al analizar:
"Entidad: línea 10: error del analizador: EntityRef: se esperaba ';' en" y luego;
" 38917408.NxJI6G.0.F.ORBITZAIR , ORBITZAIR.0.f36f1ea92513977249aa695112410052 & sid en " y luego;
"simplexml_load_string() [function.simplexml-load-string]:^en,"
y así sucesivamente para cada línea donde hay estas URL.
Encontré una mención de que SimpleXML no le gustaba los atributos largos en php.net sin solución. Prefiero simplemente usar y aprender SimpleXML por ahora y trabajar más allá de este error si hay una solución no janky, algo fácil.
¿Alguien tiene una solución? ¡Gracias por adelantado!
He intentado ingresar las primeras 13 líneas del XML pero solo muestra la información sin el XML así que ... Puedo hacerlo si me sirve de ayuda. No estoy seguro de si el uso de otro analizador/extensión reduciría la funcionalidad o la facilidad de uso, pero no dude en sugerir otro si no hay una solución (DOM o XMLReader es lo que estoy pensando, tal vez).
EDITS ABAJO PARA incluir menos ADULTERADO SALIDA DE ERROR:
http://dl.dropbox.com/u/10206237/stack_overflow_xml.xml
ERROR 1:
simplexml_load_string() [<a href='function.simplexml-load-string'>function.simplexml-load-string</a>]: Entity: line 10: parser error : EntityRef: expecting ';' in
ERROR 2: (El XML Creo que está muy bien, ya que funciona con un script en Python usando DOM; lo estoy traduciendo a PHP porque no conozco Python). No sabía que la salida en el navegador sería diferente. . Gracias por ser paciente)
<a href='function.simplexml-load-string'>function.simplexml-load-string</a>]: 38917408.Pt8rW8.0.F.ORBITZAIR,ORBITZAIR.0.f36f1ea92513977249aa695112410052&_sid_ in
ERROR 3:
function.simplexml-load-string</a>]: ^in
(todos esos espacios son de allí)
no es el atributo "larga", que es el '' y '' en el atributo . No es una entidad xml adecuada. Todos los signos y símbolos literales deben estar codificados (irónicamente) como '&'; el error indica que está esperando ';' porque quiere que '' & sid' 'sea una entidad, es decir:' '&sid; ''. –
La solución es pedirle a quien generó ese XML que arregle su código y que emita un archivo XML XML válido. –
En el archivo real que dice: "& _sid_ = 15- El error fue la producción en mi navegador tengo claro nada de codificación – JohnAllen