Inclure un fichier XML dans un autre fichier XML Probleme !

Inclure un fichier XML dans un autre fichier XML Probleme ! - XML/XSL - Programmation

Marsh Posté le 21-10-2003 à 13:23:16    

Existerais t'il la possibilité de faire ca en XML ?
 
Un sorte de include koi ?
 
Merci :jap:
 
EDIT : ce que je cherche reelement a faire c inclure un fichier XML dans un autre mais que cette inclusion soit visible si l'on fait une lecture par noeud en se balladant dans le fichier
(bien evidement sans copier betement le contenu a l'interieur)


Message édité par massamu le 23-10-2003 à 15:24:04
Reply

Marsh Posté le 21-10-2003 à 13:23:16   

Reply

Marsh Posté le 21-10-2003 à 14:10:09    

Oui il faut utiliser une entité ( external entity) comme dans cet example :  
 
<?xml version="1.0" standalone="no"?>
<!DOCTYPE DOCUMENT [
   <!ENTITY SIG SYSTEM "signature.xml">
]>
<DOCUMENT>
  <TITLE>Entity references</TITLE>
  &SIG;
</DOCUMENT>

Reply

Marsh Posté le 21-10-2003 à 14:45:31    

ok merci beaucoup, javais trouvé une exemple equivalent mais on m'a parler d'une propriété  
xml:link et je trouve rien dessus

Reply

Marsh Posté le 21-10-2003 à 16:30:45    

mais une chose c pas bon ca
pcke jaimerais que le fichier soit include et qu'on puisse le lire en C# c a dire en lisant les noeud un par un
 
et la c pas possible

Reply

Marsh Posté le 22-10-2003 à 11:01:16    

up !!
 
vous pensez que c possible ou pas ?

Reply

Marsh Posté le 22-10-2003 à 13:58:00    

up !!

Reply

Marsh Posté le 22-10-2003 à 17:37:36    

:bounce:

Reply

Marsh Posté le 23-10-2003 à 15:22:58    

vous avez aucune idée ?

Reply

Marsh Posté le 23-10-2003 à 15:50:23    

quelle est la tailles des différents fichiers à inclure, quel parseur utilises tu, quel est l'utilisation faite (t'as besoin d'une inclusion dynamique ou pas) ?

Reply

Marsh Posté le 23-10-2003 à 15:56:00    

en fait j'aimerais integrer un fichier dans un autre sans avoir a me ballader et a copier ligne a ligne (donc est ce qu'une methode existe pour ca ?)
 
et si cette methode existe permet t'elle une lecture noeud a noeud du resultat ?

Reply

Marsh Posté le 23-10-2003 à 15:56:00   

Reply

Marsh Posté le 23-10-2003 à 16:06:32    

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 :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <xsl:stylesheet
  3. version="1.1"
  4. xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  5. <xsl:output method="xml" indent="yes" encoding="ISO-8859-1" />
  6. <xsl:template match="/">
  7. <xsl:document href="site.xml">
  8.  <site>
  9.                    <xsl:copy-of select="document('doc1.xml')/root/*" />
  10.                    <xsl:copy-of select="document('doc2.xml')/root/*" />
  11.                    <xsl:copy-of select="document('doc3.xml')/root/*" />
  12.                    <xsl:copy-of select="document('doc4.xml')/root/*" />
  13.  </site>
  14. </xsl:document>  
  15. </xsl:template>
  16.  
  17. </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
Reply

Marsh Posté le 23-10-2003 à 16:12:06    

hummmm ya dlidée la dedans
cependant une chose que javais pas preciser, il faut que tout ca soit possible sous .Net/C# (visual studio .net)
 
:)

Reply

Marsh Posté le 23-10-2003 à 16:16:21    

massamu a écrit :

hummmm ya dlidée la dedans
cependant une chose que javais pas preciser, il faut que tout ca soit possible sous .Net/C# (visual studio .net)
:)


 
... je sais pas les détails de ton truc, mais au pire, tu fais un batch de fusion...

Reply

Marsh Posté le 25-10-2003 à 22:30:22    

massamu a écrit :

hummmm ya dlidée la dedans
cependant une chose que javais pas preciser, il faut que tout ca soit possible sous .Net/C# (visual studio .net)
 
:)


 
La faudrait arreter de melanger des trucs differents: XML a rien a voir avec .NET ou C# (bon, il se peut que dans certaines circonstances, .NET utilise du XML, mais ca se limite a ca comme relation)
 
Donc les includes a la XML qui marchent soit avec des entites XML externes (cas le plus courant) soit avec des XInclude (cas peu implementé actuellement) soit avec des XLink (pour des liens de type embed) n'ont pas de dependance sur du code .Net ou C#
 
Si ton parseur favori ne fait pas ce qu'il faut, a toi d'en modifier le comportement.
A+,


Message édité par gilou le 25-10-2003 à 22:32:22

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed