Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Xml e lettere accentate

    Salve a tutti, ho cercato un pò sul forum ma non trovo soluzioni per la questione. Ho una serie di dati che derivano da un file xml predefinito (è in remoto su un server non mio quindi non posso modificarlo direttamente) tipo feed rss e lo parso tramite php (uso 4.3.x con le funzioni dom). Il file giunge sottoforma di stringa catturata con le funzioni curl e arriva alla classe xml che ho creato io e lo legge.
    Tutto bene fin qui, però quando arriva una lettera accentata ricevo un errore di entità sconosciuta. Come encoding uso UTF-8 (allo stesso modo di come è specificato nel file xml) ma l'errore lo ricevo ugualmente usando l'iso-8859-1. Come posso risolvere? Non ci credo che non ci sia un modo per sistemare questa cosa!
    Ciao e grazie a chi mi risponderà.
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  2. #2

    htmlentities

    Ciao!
    ho anch'io incontrato lo stesso problema recentemente.

    c'è la funzione di php htmlentities() che ti sostituisce alle lettere accentate la notazione standard che ti permette di evitare casini nell'XML.

    es.

    è --> & e grave; // in realtà non ci sarebbero gli spazi ma senza di quelli il browser te lo tradurrebbe..
    é --> & e acute;
    ù --> & u grave;


    applica la funzione a tutto ciò che devi inserire nel tuo documento XML.

  3. #3
    Ma se uso la funzione su tutta la stringa mi spariscono tutti i vari < " e '...
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  4. #4

    non è necessario farlo su tutta la stringa..

    Due soluzioni:
    1- lo fai PRIMA di avere la stringa intera: SOLO sugli elementi / attributi da inserire non su tutto l'xml
    2- potresti fare un parsing della stringa: gli fai sostituire i caratteri accentati con htmlentities degli stessi oppure fai htmlentitites di tutto e poi fai sostituire gli apostrofi e le parentesi acute con quelle vere..
    (questa soluzione non la vedo tanto comoda se crei il documento con DOM o SAX, è utile se hai già un documento xml che apri e parsi..)

  5. #5
    Sì ho proprio già un documento così! Quindi mi tocca usare quel modo barbaro! uff speravo in una soluzione più elegante -.-
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  6. #6
    Se sostituisco le entità mi dice comunque che non sono definite, come se nella dtd non ci fossero. In effetti io non ho dtd o meglio non ho nel documento nessun riferimento ad una ipotetica dtd! Che posso fare quindi?
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  7. #7
    non è necessario un dtd in linea di massima

    posta almeno una parte del codice xml e l'errore che ti dà.

  8. #8
    Errore interpretazione XML: contenuto illegale dopo l'elemento
    Indirizzo: http://localhost/ppm/includes/inc_ge...rancy_v&type=4
    Linea numero 2, colonna 1:Warning: domxml_xmltree(): Entity 'ograve' not defined

    <?xml version="1.0" encoding="UTF-8"?>

    <toptracks user="francy_v" type="overall">
    <track>
    <artist mbid="">The Kinò</artist>
    <name>Together</name>
    <mbid/>
    <playcount>5</playcount>
    <rank>1</rank>
    <url>http://www.last.fm/music/The+Kin/_/Together</url>
    </track>

    </toptracks>

    Se tolgo la ò (che ho aggiunto proprio per testare le lettere accentate) funziona tutto alla perfezione.
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

  9. #9
    ma scusa, hai detto che il file ce l'hai già? è sempre quello?
    allora fai trova e sostituisci da un editori di testo e sostituisci tu direttamente le lettere accentate con le corrispondenti htmlentitites..

  10. #10
    Il problema è che ho l'errore di entità non definità se uso le entità tramite UTF8 (nel file e nella pagina) viceversa funziona se lavoro in latin. Tuttavia il file in remoto è utf-8 quindi ho un pò le mani legate! Che posso fare? Ma è possibile che sia tanto problematico usare una lettera accentata in xml? Mi sembra così assurdo!
    I dilettanti costruirono l'Arca, i professionisti il Titanic!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.