From: Cyril Jandia (cjandia@logfi.fr)
Date: 04/07/2002 - 12:51
> De : Romain THOUY
> À : xml-tech@xmlfr.org
> Objet : [xml-tech] CDATA et transformation XSLT
>
> Bonjour à toutes et à tous,
>
> je travaille sur une transformation XSLT avec les techno JAVA pour
> générer un document XML à partir d'un document XML.
>
> Pour cela j'utilise le xsl:copy avec un template match="* | @* |
> text()", mais certains éléments contiennent l'élément <![CDATA[
> .....]]>.
>
> Le problème est que lors de la transformation, l'élément <![CDATA[
> .....]]> n'est pas repris.
Comme vous l'avez constaté, (dans XPath) le test de noeud par "text()"
sélectionne *indifféremment*, sur le document XML source, les noeuds texte
"classiques" (par ex. "TOTO" dans "<entree>TOTO</entree>") aussi bien que les
noeuds texte dits "en sections CDATA" (par ex. "TITI" dans
"<entree><![CDATA[TITI]]></entree>");
en revanche, pour ce qui est de la génération de l'arbre de sortie *proprement
dite*, les noeuds texte, qu'ils soient recopiés ou générés en partant de zéro,
sortent *par défaut* sous la première forme seulement, c-à-d :
<sortie>TOTO</sortie>
...
<sortie>TITI</sortie>
Mais il y a bien un moyen (dans XSLT) de spécifier pour quels éléments générés
en sortie on veut voir les noeuds texte enfants "enveloppés" en sections CDATA;
en utilisant l'attribut "cdata-section-elements" de l'élément "<xsl:output...>"
:
Cf. http://xmlfr.org/w3c/TR/xslt#output
Par exemple :
<xsl:output
method = "xml"
...
cdata-section-elements = "sortie" />
Pour obtenir :
<sortie><![CDATA[TOTO]]></sortie>
...
<sortie><![CDATA[TITI]]></sortie>
> Comment faire pour le garder ?
>
> Merci beaucoup.
>
> romain
--CJ
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|