Re: Re : plusieurs fichiers xml ? partir d'un seul

[email protected] Fri, 12 Sep 2008 13:27:53 +0200 (CEST)
Newsgroups gmane.text.xml.french.tech
Message-ID <[email protected]>
S'il s'agit de cr=E9er plusieurs fichiers (xml ou autres) =E0 partir d'un=
 seul
fichier XML, la r=E9ponse d=E9pend du processeur xsl utilis=E9.
Si c'est un processeur (saxon) qui prend en charge XSLT 2.0, il suffit
d'utiliser la fonction <xsl:result-document> comme suit :

<xsl:template match=3D"article">
  <xsl:result-document href=3D"concat(@id_article}.xml" ...>
    <xsl:copy>
	<xsl:apply-templates select=3D"@*|node()/>
    </xsl:copy>
  </xsl:result-document>
</xsl:template>

Si vous utilisez un processeur limit=E9 =E0 XSLT 1.0, il vous faut utilis=
er
une extension. L=E0 encore, =E7a d=E9pend du processeur.
Si vous utilisez un processeur java, je vous sugg=E8re de le changer pour
saxon, et d'utiliser la m=E9thode pr=E9c=E9dente.
Si vous utilisez xsltproc, de libxml2, il faut utiliser l'extension exsl.
Comme suit :

Dans l'ent=EAte, d=E9clarez le namespace :
<xsl:stylesheet extension-element-prefixes=3D"exsl" version=3D"1.0"
		xmlns:exsl=3D"http://exslt.org/common"
    		xmlns:xsl=3D"http://www.w3.org/1999/XSL/Transform">


   <xsl:template match=3D"article">
	<exsl:document href=3D"concat(@id_article}.xml" ...>
	    <xsl:copy>
		<xsl:apply-templates select=3D"@*|node()/>
	    </xsl:copy>
  	</exsl:document>
   </xsl:template>

</xsl:stylesheet>

Je vous renvoie =E0 exsl pour plus d'infos.
http://www.exslt.org/exsl/elements/document/index.html

J'esp=E8re que =E7a aidera.

Cordialement,

Guillaume S=E9journ=E9



Le Ven 12 septembre 2008 9:35, philippe voncken a =E9crit :
>

>
>
> ----- Message d'origine ----
> De : David DAZ. Duriez <[email protected]>
> =C0 : [email protected]
> Envoy=E9 le : Jeudi, 11 Septembre 2008, 19h06mn 21s
> Objet : [xml-tech] plusieurs fichiers xml =E0 partir d'un seul
>
>
> Bonjour,
> Apr=E8s traitement, j'ai dans un m=EAme fichier XML du type :
>
>
> <document>
>
>
> <article>
>
>
> <revue>
>
>
> <date>
>
>
> <titre>
>
>
> <chapeau>
>
>
> <texte>
>
>
> </article>
>
>
>
>
> <article>
>
>
> <revue>
>
>
> <date>
>
>
> <titre>
>
>
> <chapeau>
>
>
> <texte>
>
>
> </article>
>
>
>
>
>
>
> <article>
>
>
> <revue>
>
>
> <date>
>
>
> <titre>
>
>
> <chapeau>
>
>
> <texte>
>
>
> </article>
>
>
> </document>
>
>
>
>
> Comment faire pour faire un fichier XML diff=E9rent pour =AB bloc =BB d=
u type
> <document><article>........</article></document> ?
>
>
>
>
> Merci d'avance pour votre aide
>
>
>
>
>
>
>
>
>
> No virus found in this outgoing message.
> Checked by AVG.
> Version: 7.5.524 / Virus Database: 270.6.19/1665 - Release Date:
> 10/09/2008
> 19:00
>
>
>
>
> -- Binary/unsupported file stripped by Ecartis --
> -- Type: application/ms-tnef
>
>
>
> --
> 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)
>
>
>
>
>
> --
> 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)
>
>
>