Bonjour,
Le mercredi 12 octobre 2005 à 16:58 +0200, sylvain caillot a écrit :
> Bonjour,
>
> Dans un element texte de mon XML input, j'ai la ligne suivante:
> <Text>Current result is between <fi:b>F</fi:b><fi:sub>max</fi:sub> and
> <fi:b>F</fi:b><fi:sub>0.1 </fi:sub>but it is not well estimated.<br/></Text>
>
> Je souhaite passer tout le contenu de mes elements Text dans CDATA[] .
> J'ai donc utilise cdata-section-elements="Text" dans mon XSL. Le probleme
> est quén faisant cela, le CDATA est coupe par la presence des balises b,sub…
> Resultat: <![CDATA[Current fishing mortality is between
> ]]><fi:b>F</fi:b><fi:sub>max</fi:sub><![CDATA[ and
> ]]><fi:b>F</fi:b><fi:sub>0.1 </fi:sub><![CDATA[but it is not well
> estimated.]]><br/>
C'est une modification complète de la structure de votre document!
Pour cela, il faut que vous écriviez les templates nécessaires à cette
transformation...
Si tous vos documents sont aussi simples que votre exemple, ceci devrait
suffire :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" cdata-section-elements="Text"/>
<xsl:template match="Text">
<xsl:copy>
<xsl:apply-templates mode="cdata"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[text()|*]" mode="cdata">
<xsl:text><</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>></xsl:text>
<xsl:apply-templates mode="cdata"/>
<xsl:text></</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>></xsl:text>
</xsl:template>
<xsl:template match="*" mode="cdata">
<xsl:text><</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>/></xsl:text>
</xsl:template>
</xsl:stylesheet>
Si vos éléments peuvent avoir des attributs, ou que vous vouliez
également reproduire des commentaires ou instructions de traitement, il
faudra modifier cette transformation pour en tenir compte :-) ...
Cordialement,
Eric van der Vlist
--
Don't you think all these XML schema languages should work together?
http://dsdl.org
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
--
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)
Received on Wed Oct 12 17:10:31 2005