Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 15 di 18

Discussione: programma lettura e ricerca da file xml

  1. #1
    New Member
    Data Registrazione
    18-01-2006
    Messaggi
    5

    programma lettura e ricerca da file xml

    Ciao a tutti!!! Mi sono appena iscritta e vorrei chiedervi aiuto per un progetto che devo fare…il progetto consiste nel realizzare un programma in c che deve prendere da linea di comando l’indirizzo di 1 o + file xml di notizie e prelevare da essi alcune informazioni (titolo, descrizione, ecc) che andranno mostrate creando una pagina html.

    Inoltre, devono poter essere fatte ricerche di particolari notizie inserendo una o più parole come parametri di ricerca all’interno di titolo o descrizione del file xml. La ricerca può avvenire con operatore di congiunzione (AND) e con operatore di disgiunzione (OR). E la notizia (o le notizie) ritrovate devono essere visualizzate a monitor.

    Ad esempio:
    >Parola da cercare: CALCIO AND PIERO
    >
    >Categoria: Sport
    >Data: 25/05/2040
    >Titolo: Del Piero diventa nonno
    >Descrizione: La juventus vince il suo 45 campionato di calcio con la prodezza del
    nipote di Del Piero.

    Quali algoritmi e strutture dati usereste voi per realizzare questo???Grazie!!!!!!!!!

  2. #2
    Member L'avatar di Zeus79
    Data Registrazione
    22-11-2002
    Messaggi
    51
    la scelta del c e di xml è obbligatoria?

  3. #3
    New Member
    Data Registrazione
    18-01-2006
    Messaggi
    5
    si....

  4. #4
    Member L'avatar di Zeus79
    Data Registrazione
    22-11-2002
    Messaggi
    51
    in tal caso io farei così...
    mi farei un parser XML che ricerchi le stringhe all'interno del documento XML, ogni volta che trovi una corrispondenza metti l'ID dell'articolo in un array che ti sei creata prima e infine puoi crearti la pagina dinamicamente leggendo gli array e tirando su con XPATH i campi che ti servono, o addirittura se vuoi fare le cose più fini crei un foglio di stile XSL che interroghi l'XML in base agli ID trovati.

  5. #5
    New Member
    Data Registrazione
    18-01-2006
    Messaggi
    5
    e se non potessi usare xpath??il fatto è che devo implementare il tutto io....

  6. #6
    Member L'avatar di Zeus79
    Data Registrazione
    22-11-2002
    Messaggi
    51
    Allora devi fare un altro giro con il parser e fargli tirar fuori quello che ti serve.

  7. #7
    New Member
    Data Registrazione
    18-01-2006
    Messaggi
    5
    ok....però come posso realizzare il parser in modo efficiente????che algoritmo posso usare per ricercare nel file???boyer-moore può essere efficiente???e che strutture dati di supporto posso usare?????

  8. #8
    Member L'avatar di Zeus79
    Data Registrazione
    22-11-2002
    Messaggi
    51
    che complessità ti viene richiesta?
    Ultima modifica di Zeus79; 20-01-2006 alle 12.33.29

  9. #9
    New Member
    Data Registrazione
    18-01-2006
    Messaggi
    5
    si, è una cosa per l'uni......
    non ho vincoli specifici sulla complessità....però so che al prof piace molto boyer-moore......
    tu come procederesti invece???

  10. #10
    Member L'avatar di Zeus79
    Data Registrazione
    22-11-2002
    Messaggi
    51
    sai, io l'università l'ho finita da un paio d'anni e l'efficienza computazionale ha lasciato posto all'efficienza economico-temporale (in poche parole il miglior rapporto tra tempi di sviluppo e costi di sviluppo).
    Se il tuo prof è un gran sostenitore di quell'algoritmo usa quello, sai come sono i prof quardano solo il bello e non il pratico. Attenta però alla complessità, cioè che se il boyre-moore mantiente O(mn) in ricerca (almeno cosi mi pare) devi evitare di cadere in complessità superiori nelle altre fasi di parsing (evitando quindi di fare più di una passata). Questo lo puoi fare studiandoti una struttura dati adeguata che potrebbe essere un array n*2 (matrice quindi) dove memorizzare l'id dell'articolo e un puntatore all'articolo stesso. Spero di essere stato chiaro, fammi sapere

  11. #11
    New Member
    Data Registrazione
    31-01-2006
    Messaggi
    5
    Ciao a tutti... sono un nuovo iscritto.... e già mi girano i balls. Ho mandato una rispsota rapida, e mi dice "discussione non valida"... vabbè. Comunque ho lo stesso identico problema di puffetta. Non so come mai penso che abbiamo il prof in comune ^_^.
    Andiamo avanti. Spero di esserti d'aiuto, quindi bando alle panze... alle zanze... alle ciance e andiamo.
    Per quanto riguarda il parser, mi trovo in disaccordo con Zeus. non &#232; necessario. Le notizie sono (come ovvio) in formato RSS 2.0. il che significa che sono racchiuse tra i tag <item> e </item>. Allora io ho fatto cos&#236;:
    1- arrivo a <item>
    2- da qui inizio a bufferizzare la notizia
    3- arrivato a </item> mi fermo
    4- estraggo dal buffer i dati e li metto in una struttura del tipo
    struct notizia{
    char titolo[100];
    char descr[1000];
    .
    .
    .
    }
    Da qui in poi &#232; una passeggiata perch&#232; avrai a che fare solo con liste e vettori di caratteri. Cio&#232;: ogni volta che acquisisci una notizia la sbatti in una struttura e la accodi ad una lista di strutture notizia. A questo punto dovrai solo trovare delle sottostringhe dentro a vettori di caratteri che puoi farlo facilmente con strstr(needle, stack) che ti restituisce un puntatore alla prima occorrenza di needle in stack. Se non la trova, restituisce NULL. Siccome non ci interessa sapere dove si trova la parola cercata (needle e stack sono due stringhe quindi char[]) basta che controlliamo che il ritorno di strstr() non sia NULL. In tal caso vuol dire che contiene la parola che cerchiamo.

    Per la traduzione in HTML basta una semplice
    fprintf(out,"<H1 class=/"titolo/">%s"<//H1>",notizia-corrente->titolo);

    Lo stesso per le altre parti della notizia. out &#232; un FILE *out. Uno stream qualsiasi cio&#232;.

  12. #12
    New Member
    Data Registrazione
    31-01-2006
    Messaggi
    5
    che cafone, non ho nemmeno salutato....
    Spero di essere stato d'aiuto . CIAUZ!

  13. #13
    New Member
    Data Registrazione
    31-01-2006
    Messaggi
    5

    Altra piccola tip sulla wget

    Riciao. Ho dato una lettura al man della wget che dobbiamo usare per gettare i file xml. Se fai così:

    wget -i sorgenti.txt -O in.xml (-O maiuscola)

    dove sorgenti.txt è una lista di url (uno per riga) in formato ascii dei file da scaricare, la wget appende il contenuto di ogni file al file in.xml
    Così ti trovi tutte le notizie in un solo file. E risolvi il prblema di scaricare tutti i file. Spero che anche questa tip possa servire.... CIAUUUUUUUZ

    PadreMalvi wrote here ( http://blog.mrwebmaster.it/claudio1983/ )

  14. #14
    Member L'avatar di Zeus79
    Data Registrazione
    22-11-2002
    Messaggi
    51
    Ma così facendo il tuo algoritmo non è quadratico?

  15. #15
    New Member
    Data Registrazione
    31-01-2006
    Messaggi
    5

    Lineare

    Quadratico in che fase? Acquisizione delle notizie, ricerca nel testo o produzione del file di out in html?

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •