Re: Convertir un sous-arbre XML en texte

Lionel Villard <[email protected]> Tue, 26 Jun 2007 13:17:02 -0400
Newsgroups gmane.text.xml.french.tech
Message-ID <[email protected]>
Implanter la fonction serialize directement en XSLT devrait etre 
faisable. Pour les elements, j'ecrirais la template suivante:

 <xsl:template match="*" mode="serialize">
    <xsl:text>&lt;</xsl:text>
    <xsl:value-of select="local-name(.)"/>
   
    <xsl:apply-template mode="serialize"/>

    <xsl:text>/&gt;</xsl:text>
 </xsl:template>

C'est un debut de solution. Evidemment si tes documents XML contiennent 
des namespaces ca devient un peu plus complique.

Lionel

Stephane Bortzmeyer wrote:
> Je cherche à convertir un document XML en XML d'un autre
> schéma. J'utilise XSLT.
>
> Il y a dans le document source des éléments que je voudrais convertir
> en texte ("sérialiser"). Exemple, je voudrais que :
>
> <foo>
>   <bar><toto/><tata/></bar>
> </foo>
>
> soit converti en :
>
> <unautretruc>
>   <unmachin>
> <![CDATA[
> <toto/><tata/>
> ]]>
>   </unmachin>
> </unautretruc>
>
> (donc que le contenu de <bar> soit traduit en texte, avec CDATA ou
> bien avec les < transformés en &lt;)
>
> <xsl:copy> ne convient pas car il copie les noeuds, pas le texte
>
> L'attribut cdata-section-elements ne convient pas car il ne gère que
> le texte
>
> Quelqu'un a une idée ? Je cherche une solution standard (Saxon a
> apparemment une fonction saxon:serialize qui fait ça.)
>
>
>
> --
> Devenez redacteur <XML>fr et contribuez au developpement du
> xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
> Liste de diffusion "[email protected]" (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 [email protected]
> (mailto:[email protected]?Subject=unsubscribe)
>
>
>
>
>