y a xinclude... mais ca marche qu'avec certains parser... j'avais le même problème à un moment et j'avais fait des recherches.
y a aussi la fonction document().... mais ca oblige à préciser le chemin d'accès en paramètre et c'est un peu lourdingue à gérer.
y a plus bourrin mais ca marche aussi, c'est de pré-fusionner les différent document XML en 1 seul avant traitement... donc, un fichier XSL du genre :
Code :
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <xsl:stylesheet
- version="1.1"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output method="xml" indent="yes" encoding="ISO-8859-1" />
- <xsl:template match="/">
- <xsl:document href="site.xml">
- <site>
- <xsl:copy-of select="document('doc1.xml')/root/*" />
- <xsl:copy-of select="document('doc2.xml')/root/*" />
- <xsl:copy-of select="document('doc3.xml')/root/*" />
- <xsl:copy-of select="document('doc4.xml')/root/*" />
- </site>
- </xsl:document>
- </xsl:template>
-
- </xsl:stylesheet>
|
suffit de créer un fichier XML contenant simplement <root /> par exemple, et de générer le résultat avec Saxon par exemple.
Ca c'est valable pour un prototypage ou si les différents fichiers à fusionner sont pas trop lourd et changent pas souvent.
Tu peux faire la même chose en dynamique (3 lignes de code) avec les frameworks Cocoon 2 ou OXF.
Sinon, dans une optique différente, plutot que d'inclure plusieurs fichiers XML en un seul... tu peux pointer vers des éléments de plusieurs fichiers XML distinct avec xpointer (par exemple avec OXF, c'est très simple)...
Je sais pas si ca t'aide, mais ce sont quelques pistes différentes...
Message édité par chocoboy le 23-10-2003 à 16:08:33