Ho bisogno di caricare un documento XML in PHP proveniente da una fonte esterna. L'XML non dichiara la codifica e contiene caratteri illegali come &
. Se provo a caricare il documento XML direttamente nel browser ottengo errori come "È stato trovato un carattere non valido nel contenuto del testo" anche durante il caricamento del file in PHP ottengo molti avvisi come: xmlParseEntityRef: no name in Entity
e Input is not proper UTF-8, indicate encoding ! Bytes: 0x9C 0x31 0x21 0x3C
.Correggi l'XML malformato in PHP prima dell'elaborazione utilizzando le funzioni DOMDocument
È chiaro che l'XML non è ben formato e contiene caratteri non validi che devono essere convertiti in entità XML.
Questo perché il feed XML è composto da dati forniti da molti altri utenti e chiaramente non viene convalidato o riformattato prima di averlo ricevuto.
Ho parlato con il fornitore del feed XML e dicono che stanno cercando di convincere i fornitori di contenuti a risolverlo, ma questo sembra sciocco poiché dovrebbero prima convalidare l'input.
Fondamentalmente ho bisogno di correggere l'XML correggendo eventuali errori di codifica e convertendo qualsiasi carattere illegale in entità XML in modo che l'XML carichi il problema quando si usano le funzioni DOMDocument di PHP.
Il mio codice attualmente si presenta come:
$feedURL = '3704017_14022010_050004.xml';
$dom = new DOMDocument();
$dom->load($feedURL);
file XML di esempio che mostra problema di codifica (clicca per scaricare): feed.xml
Esempio XML che contiene caratteri che non sono stati convertiti in entità XML:
<?xml version="1.0"?>
<feed>
<RECORD>
<ID>117387</ID>
<ADVERTISERNAME>Test</ADVERTISERNAME>
<AID>10544740</AID>
<NAME>This & This</NAME>
<DESCRIPTION>For one day only this is > than this.</DESCRIPTION>
</RECORD>
</feed>
"Come fanno tutti gli altri clienti soddisfatti (?) A gestire i dati e perché sono l'unico ragazzo miserabile" - questa è una domanda che chiederei al fornitore. Puoi fornire un (esatto) esempio di documento? – VolkerK
Mi stavo chiedendo anch'io.Ho parlato con loro e mi hanno detto che stanno avendo problemi di qualità dei dati e hanno detto ai fornitori di contenuti di risolverlo. Suppongo che gli altri clienti abbiano trovato un modo per correggere il feed XML prima di tentare di elaborarlo. Quindi la mia domanda. – Camsoft
@VolkerK Ho caricato un sottoinsieme dell'intero documento XML come XML completo come oltre 42.000 righe. – Camsoft