Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    XML UTF-8 entità caratteri entities

    Da un XML ne devo ricavare un altro... tutto UTF-8

    in particolare devo fare alcune operazioni sui nodi invertendone l'ordine e fin lì nulla di troppo complicato... estraggo i dati tramite simpleXML, ficco in array e faccio il reverse...

    però quello che in input è codificato tipo
    Codice PHP:
    "I vecchi non muoiono mai 
    diventa in output
    Codice PHP:
    "I vecchi non muoiono mai 
    è qualche impostazione di simpleXML o cosa?

  2. #2
    come faccio ad evitare che mi trasformi le entità?

  3. #3

    Re: XML UTF-8 entità caratteri entities

    Il problema credo che sia più di XML che di simpleXML. Se non vuoi che XML ne esegua il parsing prova a racchiudere la stringa dentro i commenti CDATA:
    Codice PHP:
    <![CDATA[&#34;I vecchi non muoiono mai]]> 
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  4. #4

    Re: Re: XML UTF-8 entità caratteri entities

    Originariamente inviato da webus
    Il problema credo che sia più di XML che di simpleXML. Se non vuoi che XML ne esegua il parsing prova a racchiudere la stringa dentro i commenti CDATA:
    Codice PHP:
    <![CDATA[&#34;I vecchi non muoiono mai]]> 
    ma io estraggo i dati che mi interessano e li ficco in un array... poi li stampo e quindi creo l'xml nuovo...
    sintetizzando...

    Codice PHP:
    foreach ($xml->listaLeggende->leggende as $leggende) {
       $array2[] = $leggende;
    }
    $array2 = array_reverse($array2);
    [...]
    <listaLeggende>
          <?php 
          
    foreach ($array2 as $leggende) {      
            echo(
    '<leggende>'.$leggende.'</leggende>'); 
          }
    ?>
          </listaLeggende>
    a me serve solo copiare i dati... come faccio a mettere sto CDATA?
    non ha senso che mi metto a farlo a mano, ovviamente

  5. #5

    Re: Re: Re: XML UTF-8 entità caratteri entities

    Originariamente inviato da andrea.paiola
    a me serve solo copiare i dati... come faccio a mettere sto CDATA?
    non so cosa ci fai fai poi con l'array, ma prova così

    t
    Codice PHP:
    foreach ($xml->listaLeggende->leggende as $leggende) {
       $array2[] = $leggende;
    }
    $array2 = array_reverse($array2);
    [...]
    <listaLeggende>
          <?php 
          
    foreach ($array2 as $leggende) {      
            echo(
    '<leggende><![CDATA['.$leggende.']]></leggende>'); 
          }
    ?>
          </listaLeggende>
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  6. #6
    no così mi stampa CDATA in pagina...

  7. #7
    Originariamente inviato da andrea.paiola
    no così mi stampa CDATA in pagina...
    eccerto che te lo stampa, che ci doveva fare, cucinarlo?
    Te non vuoi mica un file XML? Ecco, quello è un file XML dove l'elemento leggende non viene più elaborato dal momento che il parser Xml sa che lo deve passare come character data.

    Se lo stai guardando attraverso un browser e vedi i commenti CDATA forse è perché il browser non supporta Xml. Prova con Firefox.
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  8. #8
    Originariamente inviato da webus
    eccerto che te lo stampa, che ci doveva fare, cucinarlo?
    Te non vuoi mica un file XML? Ecco, quello è un file XML dove l'elemento leggende non viene più elaborato dal momento che il parser Xml sa che lo deve passare come character data.

    Se lo stai guardando attraverso un browser e vedi i commenti CDATA forse è perché il browser non supporta Xml. Prova con Firefox.
    no a me serve che avendo in input
    Codice PHP:
    &#34; 
    rimanga
    Codice PHP:
    &#34; 
    proprio nel file ( poi lo salvo su disco, ma questo non è importante )... senza stampare CDATA in piu...


    frega nulla del browser ( non verrà manco servito ad un browser, tra l'altro )... il problema penso sia a monte, con simpleXML??? :master:

    magari qualche impostazione del simplexml_load_file ?

  9. #9
    andrea, se vuoi che quel
    Codice PHP:
    &#34; 
    non venga processato dal parser Xml, devi indicare al parser Xml di non processarlo. Ed è esattamente a questo che servono quei commenti.

    Per renderti più chiara la faccenda forse ti serve inoltrare il file risultante al ricettore finale e vedere che succede.
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  10. #10
    Originariamente inviato da webus
    andrea, se vuoi che quel
    Codice PHP:
    &#34; 
    non venga processato dal parser Xml, devi indicare al parser Xml di non processarlo. Ed è esattamente a questo che servono quei commenti.
    no quei commenti aggiungono all'output delle cose in piu che non mi servono... a me serve il file XML con le entità non processate ( a livello di PHP, di simpleXML )... devo aggiungerli allora prima che simpleXML carichi l'XML originale? e come faccio?

    comunque non ho idea di come verrebbero interpretate poi dal recettore finale percui nisba... se mi dici che poi vengono tolte in output allora si può provare, ma non so come simpleXML possa farlo

    Originariamente inviato da webus
    Per renderti più chiara la faccenda forse ti serve inoltrare il file risultante al ricettore finale e vedere che succede.
    mi diranno che si sminchiano i caratteri perchè avevo convertito in entità XML quei caratteri proprio per questo problema

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.