[XML & XPATH] Faire des requêtes ...

Faire des requêtes ... [XML & XPATH] - Programmation

Marsh Posté le 02-07-2002 à 14:17:35    

Bonjour,
J'ai un petit soucis concernant l'extraction de données d'un document XML.
Voilà en mode base de données j'ai deux tables:
 Montre(IdMontre,IdFamille)
 Famille(IdFamille,DescFamille)
 
J'ai un doc xml de la forme :
 
<base>
  <montre>
    <IdMontre>1</IdMontre>
    <IdFamille>1</IdFamille>
  </montre>  
  <montre>  
            .
            .
    <IdMontre>15</IdMontre>
    <IdFamille>3</IdFamille>          
  </montre>
      .
      .
  <montre>
      .
  </montre>
  <famille>
    <IdFamille>1</IdFamille>
    <DescFamille>Desc1</DescFamille>
       .
       .
  </famille>
</base>
 
 
J'aimerais faire l'équivalent de la requête SQL suivante :
SELECT famille.DescFamille
FROM famille,montre
WHERE famille.IdFamille=montre.IdFamille
 
J'ai donc le cheminx xpath suivant :
var path="/base/famille[IdFamille=/base/montre/IdFamille]/DescFamille"
 
Le pb c'est que le critère ne prend QUE le premier IdFamille de la table montre, alors qu'il me les faudrait tous.
 
Une idée ???
Merci d'avance.


---------------
-@- When code matters more than commercials -@-
Reply

Marsh Posté le 02-07-2002 à 14:17:35   

Reply

Marsh Posté le 02-07-2002 à 15:25:46    

vu ta syntaxe, c'est normal qu'il te retourne que le premier...
Tu dois faire un for-each et créer une variable qui te stocke l'ID courante et la comparer ...

Reply

Marsh Posté le 02-07-2002 à 18:05:15    

chocoboy a écrit a écrit :

vu ta syntaxe, c'est normal qu'il te retourne que le premier...
Tu dois faire un for-each et créer une variable qui te stocke l'ID courante et la comparer ...




 
et ben non !!!!!!!!!!!! J'ai trouvé !!!!!!
Il suffit de faire :  
var path="/base/famille[/base/montre/IdFamille=IdFamille]/DescFamille"  
 
Et ça marche. Rien que pour une inversion.... pfffffff au moins 4 heures de nickées. Menfin, l'essentiel est que ça marche.


---------------
-@- When code matters more than commercials -@-
Reply

Sujets relatifs:

Leave a Replay

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