Re: Problème de copy-of

"jerome steunou" <[email protected]> Fri, 8 Aug 2008 10:01:12 +0200
Newsgroups gmane.text.xml.french.tech
Message-ID <[email protected]>
Effectivement j'=E9tais d=E9j=E0 en train d'=E9crire mon propre template =
de
s=E9rialisation. Et concernant l'encodage des caract=E8res, c'est encore =
plus
tordu puisque je dois utiliser un encodage sp=E9cial donc j'en avais pas =
parl=E9
jusqu'=E0 pr=E9sent. Merci beaucoup de votre aide.
Cordialement,

J=E9r=F4me Steunou

Le 8 ao=FBt 2008 09:54, Stephane Bonhomme <[email protected]> a =E9crit=
 :

> Bonjour
>
> Premi=E8re chose : vous ne pouvez pas mettre un fragment d'arbre xml
> litt=E9ralement dans un attribut, sous peine de voir votre xml resultan=
t
> mal forme, pour illustrer :
>
> <ELT ATT=3D"<elt2 att=3D"xxx"/>"/> n'est pas bien form=E9, il sera donc
> n=E9c=E9ssaire d'encoder en entit=E9s certains caract=E8res contenus da=
ns
> l'attribut :
>
> <ELT ATT=3D"&lt;elt2 att=3D&quot;xxx&quot;/&gt;"/> et vous obtenez un x=
ml
> bien form=E9, le parser xml de votre application cible se chargera (en
> principe) de r=E9soudre les entit=E9s lors de l'analyse syntaxique et v=
ous
> pourrez, par exemple avec dom, obtenir facilement l'expression mathML
> inclue.
>
> Maintenant pour obtenir ce r=E9sultat en xslt, il vous faut =E9crire un=
 jeu
> de templates particuliers pour la s=E9rialisation de votre arbre, la
> conversion en chaine "standard" ne retenant que les noeuds texte :
>
> Vous appellerez allors ces templates de la fa=E7on suivante :
>  <xsl:variable name=3D"string">
>   <xsl:apply-templates mode=3D"serialize-xml"
> select=3D"document($path)/math:math/*"/>
> </xsl:variable>
>
> Voici les templates :
>
> <xsl:template match=3D"*" mode=3D"serialize-xml">
>  <!-- balise ouvrante -->
>  <xsl:text>&lt;</xsl:text>
>  <xsl:value-of select=3D"name()"/>
>  <xsl:apply-templates select=3D"@*" mode=3D"serialize-xml"/>
>  <xsl:text>&gt;</xsl:text>
>
>  <xsl:apply-templates select=3D"node()" mode=3D"serialize-xml"/>
>
>  <!-- balise fermante -->
>  <xsl:text>&lt;/</xsl:text>
>  <xsl:value-of select=3D"name()"/>
>  <xsl:text>&gt;</xsl:text>
> </xsl:template>
>
> <xsl:template match=3D"@*" mode=3D"serialize-xml">
>  <xsl:text> </xsl:text>
>  <xsl:value-of select=3D"name()"/>
>  <xsl:text>=3D"</xsl:text>
>  <xsl:value-of select=3D"."/>
>  <xsl:text>"</xsl:text>
> </xsl:template>
>
>
> C'est assez simple comme approche, je ne traite pas ici les
> commentaires, PI, ni quelques cas particuliers (pr=E9sence de " dans le=
s
> valeurs d'attributs...). Mais c'est un d=E9but qui devrait vous aiguill=
er
> sur la bonne voie.
>
> Cordialement,
> St=E9phane.
>
> Le vendredi 08 ao=FBt 2008 =E0 09:01 +0200, jerome steunou a =E9crit :
> > Dsol j'en rajoute mais : pour faire simple, je pensais que copy-of me
> > permettrait de passer d'un arbre  une string trs simplement, ce qui e=
st
> ce
> > dont j'ai besoin ici.
> > Le 8 aot 2008 08:59, jerome steunou <[email protected]> a crit=
 :
> >
> > > lignon >Oui node() j'ai dj essay mme rsultat.
> > >
> > > Stephane Bonhomme > Je comprend bien votre explication, donc les
> > > <xsl:message terminate=3D"non"><xsl:value-of select=3D"$string"
> /></xsl:message>
> > > que j'utilise pour observer le rsultat en console font la mme chose=
 ?
> Il
> > > passe un tree en string en ne prenant que les node texte ?
> > >
> > > Sinon oui a semble bizarre  premire vue, et compltement hors norme =
mais
> > > j'ai hlas besoin d'avoir ces formules mathmatiques sous forme de ma=
thml
> > > telles qu'elles sont prsentes dans le document d'origine, dans
> l'attribut
> > > de cette balise. Je ne peux pas trop m'tendre sur le sujet, considr=
ez
> > > juste que c'est une infime partie d'un logiciel.
> > >
> > > Cordialement,
> > >
> > > Jrme Steunou
> > >
> >
> >
> > --
> > 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=3Dunsubscribe)
> >
> --
>            St=E9phane Bonhomme           --           Exselt Services
>
>        Formations, Conseil et R=E9alisations en Ing=E9nierie Documentai=
re,
>                    Technologies Web et Logiciels Libres
>             [email protected]   -   http://www.exselt.com
>                04 57 39 30 78        /      06 88 57 27 08
>
>
> --
> 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=3Dunsubscribe)
>
>