namespaces - interpretazione dei tag

matric82

Nuovo Utente
18 Giu 2010
5
0
0
Ciao a tutti,
mi sto cimentando da poco nell'utilizzo dell'XML, quindi non sono ben formato al riguardo.
Ho un sito già costruito e sto cercando di migliorarlo con tecniche ajax.
Apparte questo il problema è il seguente:

uno Script genera un documento xml prendendone i dati dal database.
alcuni nodi del documento contengono dei tag html in quanto sono generati da un editor direttamente dall'utente.

questo testo contiene dei tag non chiusi del tipo <br>.

di conseguenza, nonostante abbia inserito all'inizio del nodo il namespace:


<html xmlns="http://www.w3.org/1999/xhtml">


(e poi chiusolo alla fine)

il browser quando apro il documento mi genera un'errore. dicendomi che aspettava la chiusura del tag <br>

come posso risolvere questo problema? devo inserire un diverso namespace?

vi metto tutto il codice che genera il nodo. GRAZIE della collaborazione.


echo "<testo><html xmlns="http://www.w3.org/1999/xhtml">$testo</html></testo>";
 
namespaces

GRazie alessandro, ma avevo provato.
Inserendo CDATA non mi considera più nulla come dei tag e quindi perdo tutta la formattazione che intendevo salvare dall'HTML.
ti vengono in mente altre soluzioni?

pensavo che il problema stesse nel tag <br> che non si chiude.
perchè ho fatto delle prove con tag <br/>
e funziona a modo.
Potrebbe essere perchè l'xhtml esige anche lui la chiusura di tutti i tag?

se qualcuno ne sa qualcosa mi faccia sapere grazie.
 
No, aspetta, ma c'è qualcosa che non mi quadra. Non puoi inserire in un file XML del codice HTML, perché altrimenti ti restituirà sempre errore. Il simbolo < infatti, è considerato non valido e pertanto va necessariamente inserito all'interno di una sezione CDATA. In che senso perdi la formattazione del testo?
 
namespaces

dunque, mettiamo che il rigo generato dallo script sia così

Codice:
<testo><html xmlns='http://www.w3.org/1999/xhtml'><h1>titolo</h1>prima riga<br>seconda riga</html></testo>
questo non dovrebbe far in modo che il testo compreso fra tag <html: xmlns...> e </html>, compresi
i tag <h1></h1> e <br> siano considerati come html e quindi visualizzati come tali?

chiedo a te perchè inizio ad avere dei dubbi.
Grazie dell'aiuto.
 
No... cioè, se lo fai visualizzare ad un browser sì, ma i file XML non sono creati per essere visualizzati da un browser, a meno che tu non abbia anche il relativo stylesheet. Di solito vengono utilizzati come database, e quindi sono parsati da un altro software. Non è così nel tuo caso?
 
namespaces

praticamente ho un database mysql di 26000 e più ricette, il sito funziona, ma le pagine vengono caricate per intero ogni volta.

Ho deciso così di provare ad usare ajax in modo che la lista delle ricette venga presa dal db e importata direttamente nella pagina tramite un xml.

per ora sto cercando di scrivere la parte lato server che dovrebbe generare l'xml.

Il problema è che il testo delle ricette è salvato nel db in forma di html con tutti i suoi tag (strong etc...).

percui quando mi trovo ad inserire nel xml, tra i tag <testo></testo>, il testo della ricetta credo che debba essere indicato con il name space.
Oppure devo semplicemente metterlo come sezione CDATA e passando il contenuto del nodo nella pagina finale, si visualizzerebbe come html della pagina stessa?

Spero di essermi spiegato.
 
Guarda, quando ho bisogno di visualizzare codice HTML io solitamente lo inserisco nel file XML sotto forma di sezione CDATA, e poi lo visualizzo normalmente. Non c'è nessun problema per la visualizzazione, anche perché quando il parser legge il file XML elimina automaticamente l'apertura e la chiusura del tag CDATA.
 
namespaces - risolto

Hai ragione Alessandro, mi ero incartato su un problema che non c'era solamente perchè stavo visualizzando il documento gerato direttamente dal browser e mi aspettavo che l'html venisse interpretato come tale, ma in realtà la pagina finale dovrà essere una pagina html quindi non ci sono problemi.
Grazie dell'aiuto.
Sei molto bravo per avere solo 13 anni!!
(sempre che quella sia la tua data di nascita0:))
 

Discussioni simili