Identificazione degli elementi dai feed di dati generati dai siti affiliati

0

Sto lavorando con feed di dati da siti affiliati. L'idea di base è quella di fornire un'interfaccia in cui l'utente può incollare un collegamento a un flusso di dati XML (questi sono enormi btw, circa 60 mb) che sarebbero poi trasmessi in streaming, analizzati in piccoli blocchi e estratti per i dati richiesti che sarebbero poi memorizzato nel database.

Il problema è che diversi siti affiliati hanno Schemi diversi per i loro XML. È un po 'difficile mappare gli elementi in un XML agli attributi del database quando non si conosce realmente quale elemento contiene cosa.

La mia soluzione: utilizzare XPath per attraversare il primo insieme di parent e discendenti, recuperare gli elementi come pure i dati e chiedere all'utente di associare questi dati agli attributi nel database selezionando da un set di radio pulsanti che rappresentano gli attributi dal database. Questo sarà fatto solo una volta per ogni nuovo Feed, una volta che il sistema saprà che cosa caricherà automaticamente i dati dall'XML al database.

Questo suono è fattibile? C'è una soluzione migliore? Mi rendo conto che questo lascia un'apertura scomoda per l'errore umano ..

Grazie.

    
posta SPI 05.08.2012 - 14:24
fonte

1 risposta

1

Questo suono è valido?

È completamente fattibile. I dati XML possono essere recuperati da cURL tramite PHP e analizzati come dati XML.

Ad esempio, i dati video di YouTube possono essere recuperati come XML da:

1) cURL i dati XML. YouTube segue il formato di collegamento di:

link

2) XML Parser Crea l'oggetto

3) XML Parse Into Struct il contenuto recuperato. Potrebbe essere necessario scrivere alcune funzioni personalizzate per attraversare i dati per estrarre ciò che si desidera. Di solito scrivo funzioni generiche personalizzate come "getXMLvalueByAttribute", "getXMLvalueByTag" e "getTagStringData" per farlo facilmente.

4) XML Parser Free l'oggetto una volta che hai finito di memorizzarlo.

Non hai specificato esattamente quale tipo di dati XML, quindi ti ho dato l'esempio di YouTube sopra.

Esiste una soluzione migliore?

Definirei di sicuro se il servizio / sito web ha un'API disponibile. Questo normalmente ti farà risparmiare tempo ed energia se ne hai uno disponibile.

    
risposta data 12.12.2012 - 01:02
fonte

Leggi altre domande sui tag