VEDI modifiche in FONDO PER MOSTRARE più accurato ERROR OUTPUTPHP - errore di analisi SimpleXML
sto analizzando un po 'di grandi file XML (~ 15 MB) con PHP per la prima volta usando SimpleXML. I file sono i risultati di ricerca dei voli in modo da avere gli attributi lunghi (link al Kayak; esempio:
"/book/flightcode=1238917408.NxJI6G.0.F.ORBITZAIR,ORBITZAIR.0.f36f1ea92513977249aa695112410052 & sid = 26-Vu01v7ilzhSAjPVLZ3Ul "
SimpleXML getta questo errore durante l'analisi:
"Entity: linea 10: errore del parser: EntityRef: in attesa ';' in" e poi;
" 38917408.NxJI6G.0.F.ORBITZAIR , ORBITZAIR.0.f36f1ea92513977249aa695112410052 & sid in " e poi;
"simplexml_load_string() [function.simplexml carico-stringa]:^a"
e così via per ogni linea dove ci sono questi URL.
Ho trovato una menzione di SimpleXML che non gradisce attributi lunghi su php.net senza soluzione. Preferisco semplicemente usare e imparare SimpleXML per ora e superare questo errore se c'è una soluzione non janky, un po 'facile.
Qualcuno ha una soluzione? Grazie in anticipo!
Ho tentato di inserire le prime 13 righe dell'XML ma esso restituisce solo le informazioni senza l'XML in modo .... Posso farlo se sarà d'aiuto. Non sono sicuro che l'uso di un altro parser/estensione ridurrebbe la funzionalità o la facilità d'uso, ma non esitate a suggerirne un altro se non c'è soluzione alternativa (DOM o XMLReader è ciò che sto pensando, forse).
EDITS qui sotto per COMPRENDONO MENO adulterato ERRORE DI USCITA:
http://dl.dropbox.com/u/10206237/stack_overflow_xml.xml
ERRORE 1:
simplexml_load_string() [<a href='function.simplexml-load-string'>function.simplexml-load-string</a>]: Entity: line 10: parser error : EntityRef: expecting ';' in
ERRORE 2: (L'XML penso che va bene perché funziona con uno script Python utilizzando DOM: lo sto traducendo in PHP perché non conosco Python). Non sapevo che l'output nel browser sarebbe stato diverso. . Grazie per la pazienza)
<a href='function.simplexml-load-string'>function.simplexml-load-string</a>]: 38917408.Pt8rW8.0.F.ORBITZAIR,ORBITZAIR.0.f36f1ea92513977249aa695112410052&_sid_ in
ERRORE 3:
function.simplexml-load-string</a>]: ^in
(tutti quegli spazi sono in là)
Non è l'attributo "lungo", è il ''e'' l'attributo . Non è un'entità xml corretta. Tutte le e commerciali letterali devono essere codificate (ironicamente) come '&' - l'errore indica che si aspetta ';' perché vuole che '' & sid' 'sia un'entità, ovvero:' '&sid;' '. –
La soluzione è chiedere a chiunque abbia generato quell'XML di correggere il proprio codice e generare un plzkthx XML valido. –
Nel file vero e proprio si dice: "& _Sid_ = 15- L'errore è stato di uscita dal mio browser ho chiaramente so nulla di codifica – JohnAllen