S'il s'agit de créer plusieurs fichiers (xml ou autres) à partir d'un seul
fichier XML, la réponse dépend du processeur xsl utilisé.
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="article">
<xsl:result-document href="concat(@id_article}.xml" ...>
<xsl:copy>
<xsl:apply-templates select="@*|node()/>
</xsl:copy>
</xsl:result-document>
</xsl:template>
Si vous utilisez un processeur limité à XSLT 1.0, il vous faut utiliser
une extension. Là encore, ça dépend du processeur.
Si vous utilisez un processeur java, je vous suggère de le changer pour
saxon, et d'utiliser la méthode précédente.
Si vous utilisez xsltproc, de libxml2, il faut utiliser l'extension exsl.
Comme suit :
Dans l'entête, déclarez le namespace :
<xsl:stylesheet extension-element-prefixes="exsl" version="1.0"
xmlns:exsl="http://exslt.org/common"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="article">
<exsl:document href="concat(@id_article}.xml" ...>
<xsl:copy>
<xsl:apply-templates select="@*|node()/>
</xsl:copy>
</exsl:document>
</xsl:template>
</xsl:stylesheet>
Je vous renvoie à exsl pour plus d'infos.
http://www.exslt.org/exsl/elements/document/index.html
J'espère que ça aidera.
Cordialement,
Guillaume Séjourné
Le Ven 12 septembre 2008 9:35, philippe voncken a écrit :
>
>
>
> ----- Message d'origine ----
> De : David DAZ. Duriez <daz@ecedi.fr>
> À : xml-tech@xmlfr.org
> Envoyé le : Jeudi, 11 Septembre 2008, 19h06mn 21s
> Objet : [xml-tech] plusieurs fichiers xml à partir d'un seul
>
>
> Bonjour,
> Après traitement, j'ai dans un même 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érent pour « bloc » du 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 "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)
>
>
>
>
>
> --
> 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)
>
>
>
--
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)
Received on Fri Sep 12 13:42:31 2008