XSL : croiser les données de plusieurs fichiers XML

XSL : croiser les données de plusieurs fichiers XML - XML/XSL - Programmation

Marsh Posté le 01-08-2008 à 13:03:41    

Bonjour,
 
je voudrais savoir s'il est possible de faire une sorte d' "aggrégation" entre plusieurs fichiers XML et lier des données comme une jointure dans les BDD relationnelles; en utilisant qu'une feuille XSL.
 
fichier 1 :

Code :
  1. <tableau>
  2. <ligne> <a>1</a> <b>A</b> </ligne>
  3. <ligne> <a>2</a> <b>B</b> </ligne>
  4. <ligne> <a>3</a> <b>B</b> </ligne>
  5. </tableau>


 
fichier 2 :

Code :
  1. <code>
  2. <lien> <b>A</b> <c>blablabla</c> </lien>
  3. <lien> <b>B</b> <c>bloubloublou</c> </lien>
  4. </code>


 
Ce que je veux obtenir est un fichier du style du suivant

Code :
  1. <tableau>
  2. <ligne> <a>1</a> <d>blablabla</d> </ligne>
  3. <ligne> <a>2</a> <d>bloubloublou</d> </ligne>
  4. <ligne> <a>3</a> <d>bloubloublou</d> </ligne>
  5. </tableau>


 
 
Si c'est possible, je cherche quelque chose de légèrement plus compliqué : s'il trouve pas de valeur "c" dans le fichier 2 pour le "b" donné dans le fichier 1, il affiche ce dernier dans le "d" du fichier retourné
 
Merci  :)

Reply

Marsh Posté le 01-08-2008 à 13:03:41   

Reply

Marsh Posté le 01-08-2008 à 16:23:57    

me souviens plus comment j'avais fait, mais en faisant un <xsl:import> depuis ta XSL, tu peux récupérer tes fichiers XML et trouver les données dedans en les collant dans une variable. c'est un peu le bordel, mais ça marche.
 
désolé par contre, je n'ai plus du tout en tête la syntaxe.

Reply

Marsh Posté le 04-08-2008 à 10:59:13    

<xsl:import> c'est pour importer d'autres stylesheets, la fonction XPath document() permet d'ajouter des fichiers xml au document en cours...  
 
Installez le MSXML 4.0 SDK vous aurez un fichier d'aide très complèt en HTML compilé sur XSLT et XPath en prime.


Message édité par avander le 04-08-2008 à 10:59:40
Reply

Marsh Posté le 04-08-2008 à 17:40:33    

ouala c'est ça :D

Reply

Marsh Posté le 06-08-2008 à 14:37:42    

Y'a aussi moyen d'y arriver par la DTD, en définnissant des entités qui renvoient vers les fichiers xml... ;-).

Reply

Sujets relatifs:

Leave a Replay

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