Mi spiego meglio, devo trasformare un file XML in HTML tramite un foglio di stile XSL e fin qui pace.
Però nel file XML ci sono praticamente tutti i paragrafi che dovranno apparire nella pagina HTML e qui mi vengono dei dubbi.
Nei paragrafi ci sono altri elementi dell'HTML, come grassetto, inclinato, ma anche link e immagini, come faccio a rappresentarli?
Avevo pensato di inserire gli elementi HTML nel file XML in un campo CDATA, in pratica in ogni <paragrafo>c'è il testo in puro HTML formattatto dentro un campo CDATA</paragrafo>, forse così va bene e mi toglie dall'imbarazzo di creare una serie di template XSL complessi, però non mi pare elegante.
In realtà volevo fare qualcosa di più complesso ma anche flessibile, qualcosa del tipo:
perfetto, ma come creo un template che mi generi qualcosa del tipocodice:<paragrafo> <testo>qualcosa da inserire qui</testo> <link href="collegamento alla pagina esterna">descrizione</link> <testo>altro testo dopo il link</testo> <testo>altro testo dopo il link</testo> <link href="collegamento alla pagina esterna">descrizione</link> <testo>altro testo dopo il link</testo> </paragrafo>
La mia paura è che leggendo il file XML il parser mi metta che so prima tutti i <testo> e poi i <link> in fondo al paragrafo, rendendo sconclusionata la frase.codice:testo qualsiasi del paragrafo <a href=....">clicca e godi</a> altro testo fino al prossimo link non cliccare se no non godi ancora del testo</p>
Per semplificare ho messo solo <link> ma lo stesso discorso vale per immagini e attributi di grassetto per esempio.
Sto pensando di utilizzare un ciclo for-each per fare il parsing di ogni nodo <paragrafo> e penso che sia l'unica cosa, ma poi dentro dovrei creare un altro cliclo for-each per leggere i <testo> e ma per <link> e quantaltro?
Creare dei choose all'interno del for-each per bloccare il ciclo ogni volta che si presenta un'eccezione?
Forse è il caso di tornare al campo CDATA, voi che ne pensate?

Rispondi quotando