From: Benoît Barré (benoitbarre@free.fr)
Date: 27/08/2002 - 08:43
En réponse à Yvan Seligour <yseligour@rennes.jouve.fr>:
> Bonjour,
>
> J'ai le fichier XMLsuivant:
>
> <?xml version="1.0" encoding="iso-8859-1"?>
> <toto>
> <para>
> Bonjour,
> <note>(1)</note>
> ca va ?
> </para>
> </toto>
> Et souhaite transformer ce flux en :
>
> <texte>Bonjour,<ref>(1)</ref>ca va?</texte>
> En mettant ceci dans ma feuille xsl
>
> <xsl:template name="rg_toto">
> <xsl:for-each select="./toto//*">
> <xsl:choose>
> <xsl:when test="name() = 'para'">
> <xsl:element name="texte">
> <xsl:copy-of select="text()"/>
> </xsl:element>
> </xsl:when>
> <xsl:when test="name() = 'note'">
> <xsl:element name="ref">
> <xsl:copy-of select="text()"/>
> </xsl:element>
> </xsl:when>
> </xsl:choose>
> </xsl:for-each>
> </xsl:template>
>
> J'obtiens ceci :
> <texte>Bonjour, ca va?</texte><ref>(1)</ref>
>
> Quelqu'un aurait-il une idée pour que ma "note" ne soit pas déplacée
> dans le flux ?
>
> Si mon problème inspire certains, merci bien pour leur aide.
> A bientot
>
> Yvan
>
Voici une solution :
<xsl:template match="para">
<xsl:element name="texte" >
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="note">
<xsl:element name="ref" >
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<!-- optionnel -->
<xsl:template match="*">
<xsl:element name="{name()}" >
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
qui marche s'il n'y a pas de namespace à gérer.
Cordialement,
Benoît
PS : rajouter la copie des attributs au besoin.
--
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
|