PDA

View Full Version : XML- Scrivere < e > come testo, no per aprire un tag


anx721
15-02-2005, 18:17
Salve,

vorrei sapere se c'è un modo per poter scrivere all'interno di un file xml del testo che può contenere i caratteri < o >, in modo tale che questi non vengano considerati come l'apertura o la chiusura di un tag, ma semplice testo. Questo mi serve perchè quando poi vado a trasformare il file xml con xslt non ci sia errore. Non vorrei dover sostituire i suddetti caratteri con &lt; e &gt; ma vorrei lasciare il tsto cosi com'è,

grazie e ciao

theClimber
15-02-2005, 21:49
Usa una sezione CDATA. Dai un occhio a:
http://www.w3schools.com/xml/xml_cdata.asp

Se i caratteri < e > sono 1 o 2 mi sembrerebbe piu' chiaro usare le entity &lt; e &gt; (nota che > non e' un carattere strettamente illegale in XML, dato che il parser non lo puo' confondere con un pezzo di tag che prima di essere chiuso deve venir aperto, per cui l'uso del &gt; e' facoltativo)

Ciao

anx721
15-02-2005, 22:23
Purtroppo non riesco a risolvere con CDATA perche il blocco CDATA deve essere chiuso da]] e il testo che io inserisco potrebbe contenere ]], in pratica tale testo contiene frammenti di codice di programmi , quindi non puo essere esclusa la presenza di ]] in tale testo. Quindi dici che devo per forza rimpiazzare ogni occorrenza di < in quel testo con &lt; ?

theClimber
16-02-2005, 20:06
Secondo la specifica XML (http://www.w3.org/TR/2000/REC-xml-20001006.html#sec-cdata-sect) la chiusura del CDATA e' la stringa ']]>'.

Cmq. se non riesci a garantire l'assenza della stringa di chiusura temo che encodare < con &lt; (ed anche & con &amp;) sia inevitabile.

Se l'xml lo generi in automatico da codice, penso che puoi trovare funzioni che ti fanno l'escaping (o scriverne una tu)