Re: Problème de copy-of
Stephane Bonhomme <[email protected]> Thu, 07 Aug 2008 18:04:09 +0200
| Newsgroups | gmane.text.xml.french.tech |
|---|---|
| Organization | Exselt Services |
| Message-ID | <1218125049.22025.19.camel@citrouille> |
Pas tout =C3=A0 fait; le copy-of fait bien une copie de tous l'arborescen=
ce
des elements fils de math; la variable string contient bien un result
tree fragment. "document($path)/math:math/*" ne recopie pas les noeuds
texte, mais seuls les noeuds de type element, fils de math:math.
Par contre l'utilisation de la forme attribut=3D"{$string}" convertit ce
result tree fragment en cha=C3=AEne, c'est =C3=A0 dire concat=C3=A8ne l'e=
nsemble des
noeuds texte descendant du premier noeud contenu dans $string, d'ou
votre r=C3=A9sultat.
Voil=C3=A0 l'explication du comportement de votre feuille de style.
Maintenant j'ai une petite incertitude sur le resultat que vous
esp=C3=A9rez : vous voulez copier le contenu dans une valeur d'attribut, =
qui
ne peut contenir que du texte lit=C3=A9ral et pas une arborescence de noe=
uds.
Pour vous orienter sur la bonne solution peut etre serait-il bon que
vous nous donniez le resultat que vous escomptez voir pour votre
transformation.
Cordialement,
St=C3=A9phane Bonhomme.
Le jeudi 07 ao=C3=BBt 2008 =C3=A0 17:16 +0200, lignon a =C3=A9crit :
> Oui, c'est le copy-of qui est en cause.
>=20
> Avec ca "document($path)/math:math/*", tu ne recopies que les noeuds te=
xte.
> L'expression XPATH pour r=C3=A9cup=C3=A9rer les noeuds =C3=A9l=C3=A9men=
ts et les noeuds=20
> textes est plus complexe.
> Essaie avec document($path)/math:math/node()
>=20
> Erick
>=20
>=20
> > Bonjour,
> > Apr=C3=A8s des heures et des heures de recherches vaines et d'essais =
en tout
> > genre je m'en remet =C3=A0 vous.
> >
> > Voici mon probl=C3=A8me ; je dois produire un fichier XML =C3=A0 part=
ir d'un document
> > XML, qui est s=C3=A9par=C3=A9 en plusieurs fichiers XML. Celui ci con=
tient entre autre
> > du MathML. Je dois pouvoir l'importer tel quel, et na=C3=AFvement j'u=
tilise
> > quelque chose de ce style, quand je d=C3=A9tecte une inclusion de Mat=
hML (je vous
> > passe les d=C3=A9tails)
> >
> > <xsl:template name=3D"traiteMathML">
> > <xsl:variable name=3D"path" select=3D"concat($projet, '\math.xml'=
)" />
> >
> > <xsl:variable name=3D"string">
> > <xsl:copy-of select=3D"document($path)/math:math/*" /=
>
> > </xsl:variable>
> >
> > <BALISE attribut=3D"{$string}" />
> >
> > </xsl:template>
> >
> > Sauf qu'en sortie j'ai quelque chose comme
> >
> > a2+b2=3Dc2
> >
> > Au lieu de
> >
> > <math:math xmlns:math=3D"http://www.w3.org/1998/Math/MathML
> > "><math:mrow><math:mrow><math:msup><math:mi>a</math:mi><math:mn>2</ma=
th:mn></math:msup><math:mo>+</math:mo><math:msup><math:mi>b</math:mi><mat=
h:mn>2</math:mn></math:msup></math:mrow><math:mo>=3D</math:mo><math:msup>=
<math:mi>c</math:mi><math:mn>2</math:mn></math:msup></math:mrow></math:ma=
th>
> >
> >
> > J'ai tent=C3=A9 les copy-of du document tout court, depuis le noeud m=
ath:math...
> > rien =C3=A0 faire, avec un xsl:message je vois bien en console que le=
probl=C3=A8me
> > vient du copy-of.
> > J'ai tent=C3=A9 aussi les copy-of depuis un noeud quelconque comme ma=
th:mi et il
> > me donne bien le bon r=C3=A9sultat, donc il "voit" l'arborescence.
> > Pourquoi ne me la recopie-t-il pas justement ?
> >
> > En faisant une tentative sur un quelconque noeud du document XML de b=
ase
> > pars=C3=A9, j'ai le m=C3=AAme probl=C3=A8me, il me recopie le texte, =
mais pas les balises.
> > J'ai donc du me planter quelque part mais o=C3=B9 ?
> >
> >
> > Merci d'avance,
> >
> > J=C3=A9r=C3=B4me 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=20
> > tout sujet technique lie a XML.
> >
> > Pour resilier votre abonnement, envoyez un message contenant=20
> > la commande "unsubscribe" a [email protected]
> > (mailto:[email protected]?Subject=3Dunsubscribe)
> >
> >
> > =20
>=20
> --
> Devenez redacteur <XML>fr et contribuez au developpement du
> xml francophone (http://xmlfr.org/infos/redacteurs/) !
>=20
> Liste de diffusion "[email protected]" (http://xmlfr.org).
>=20
> Cette liste est a votre disposition pour discuter en francais de=20
> tout sujet technique lie a XML.
>=20
> Pour resilier votre abonnement, envoyez un message contenant=20
> la commande "unsubscribe" a [email protected]
> (mailto:[email protected]?Subject=3Dunsubscribe)
>=20
--=20
St=C3=A9phane Bonhomme -- Exselt Services
=20
Formations, Conseil et R=C3=A9alisations en Ing=C3=A9nierie Docum=
entaire,
Technologies Web et Logiciels Libres=20
[email protected] - http://www.exselt.com
04 57 39 30 78 / 06 88 57 27 08