Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    18

    Problema nel parsing XML

    Ciao a tutti.
    Ho realizzato un sito web che sfrutta dei dati scritti in xml per creare i contenuti di alcune pagine web. La pagina in questione è scritta in php e ho realizzato un sistema che legge l'xml e trasforma tutto in un array associativo multidimensionale in cui le chiavi sono i nomi dei tag e il contenuto della variabile è il contenuto del tag. Ho usato le solite funzioni standard di php xml_parser_create(), xml_parser_set_option(...) ecc.. Ok, fin qui nulla di particolare! Il problema è che con PHP 4 tutto funzionava benissimo, ma ora che ho installato PHP 5.1.2 il programma non riesce più a leggere i file xml, o meglio li legge ma sembra che il parser si interrompa se nel testo c'è per esempio una lettera accentata es "à". Infatti la pagina viene generata correttamente e per intero ma senza il testo! Al limite sono riuscito a far comparire parte del testo ma solo fin quando non si incontra un apostrofo o una lettera accentata... Da cosa può dipendere questo comportamento? Forse c'è qualche impostazione di php errata?

    Spero tanto che qualcuno mi aiuti!

    Grazie

  2. #2
    Aggiungi questo all'inizio del file xml, prima di ogni altra cosa, secondo me risolvi:

    <?xml version="1.0" encoding="iso-8859-1" ?>

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    18
    Grazie per la risposta, ma tutti i miei file xml hanno già quella stringa nella prima riga...

    Altre idee?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    18
    Ciao
    Purtroppo il problema persiste. Penso però di aver trovato un indizio per risolvere il problema: ho provato a salvare il mio file xml con diversi programmi (Notepad, SciTE, WordPad...) e ho notato diversi comportamenti del parser, penso a causa del cambiamento di codifica dei caratteri da parte dei vari programmi. Quindi penso sia un problema di codifica dei file xml, può essere? Ho provato anche a cambiare tutti i caratteri che interrompono il parser (che o si blocca fino alla lettera incriminata tipo la "è" o la "à" o semplicemente l'apostrofo "'" o restituisce l'errore "Invalid Token") con le relative HTML Entities ed effettivamente questo aiuta. Il problema però è che se uso ad esempio l'entità HTML per la "è" php mi visualizza la A maiuscola accentata seguita addirittura da altri simboli! Ma perchè?
    Vi prego, datemi una mano perchè sto impazzendo e devo assolutamente risolvere il problema!

    Grazie

    P.S. Ho pensato anche che magari fosse la mia implementazione del parser xml ad avere qualche errore di programmazione allora ho provato ad utilizzare una versione che ho trovato direttamente su php.net ma niente: sempre la solita storia!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    18
    Aiuto!

  6. #6
    "è" php mi visualizza la A maiuscola accentata seguita addirittura da altri simboli! Ma perchè?
    Questo accade quando l'html di output della pagina non ha un character encoder.. invece di inserirlo come ti è stato suggerti nel xml, che è corritto prova anche a inserirlo nel php a inizio pagina fra i meta tag della head, che capita che se non sa come encodare i caratteri fa quelli cose, meti questo fra i meta tag:
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

    è il charset italiano, magari risolvi
    Yep ^^

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.