|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2003
Città: Ruvo di Puglia
Messaggi: 540
|
[C++, XML] Lettura dati XML da internet: come fare?
Salve ragazzi.
Devo scrivere un programmino c++ che mi legga dei dati da una pagina XML su internet e che me li salvi in un altro file. Programmo su linux. La parte problematica è quella di lettura: so che devo usare un parser per fargli leggere il documento xml, ma per dire al mio programma che la pagina che deve aprirmi si trova su internet come faccio? Devo usare altri accorgimenti? Il parser è quello che mi permette far leggere al mio programma il contenuto dell'xml? In materia di parser non sono preparato. Grazie mille!! |
![]() |
![]() |
![]() |
#2 |
Registered User
Iscritto dal: Feb 2008
Messaggi: 77
|
In C++ ho sempre usato TinyXML, va molto bene ed è facile ed immediato da usare: http://www.grinninglizard.com/tinyxml/
Purtroppo non ha una funzione per agganciarsi ad un file su web, quindi lo devi scaricare in locale (ad esempio su /tmp/). Ciao ![]() |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Codice:
int CurlCallback(char *data, size_t size, size_t nmemb, void* customData) {ofstream file("file.xml",ios::app); if(file.is_open()) {} int main() {file << data; file.close();} return size * nmemb;CURL * curl = curl_easy_init(); curl_easy_setopt(curl, CURLOPT_URL, "indirizzo_file_XML"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, CurlCallback); CURLcode res = curl_easy_perform(curl); if (res != CURLE_OK) std::cout << "Errore nel download" << std::endl; return 0;} |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: May 2003
Città: Ruvo di Puglia
Messaggi: 540
|
mmm.. ottimo!!
Se invece avessi bisogno di autenticarmi? |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
In questo caso le cose si fanno un pò più complicate perchè bisogna gestire la comunicazione HTTP con il server (esattamente come fa un browser).
Dovrai andare ad analizzare l'header HTTP di risposta e seguire le direttive del server: tipo di autenticazione richiesta, tenere traccia di eventuali cookie... Con la CURL l'eventuale gestione dell'https è trasparente basta ricordarsi di specificate "https://" prima dell'url. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: May 2003
Città: Ruvo di Puglia
Messaggi: 540
|
Si tratta sempre di operare con CURL in caso di autenticazione, no?
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: May 2003
Città: Ruvo di Puglia
Messaggi: 540
|
grazie mille!
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:03.