Précédent   Forum du club des développeurs et IT Pro > Autres langages > XML/XSL et SOAP > XQUERY/SGBD
XQUERY/SGBD Le langage XQUERY et tout ce qui a trait aux relations XML et bases de données : BDD XML native, intégration/extraction de XML, XML dans BDD relationnelle... Avant de poster -> FAQ XML, Sources XML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 19/07/2011, 23h23   #1
htristra
Futur Membre du Club
 
Inscription : juillet 2005
Messages : 64
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 64
Points : 18
Points : 18
Envoyer un message via MSN à htristra
Par défaut Produire un arbre xml à partir de plusieurs tables SQL

Bonsoir,

J'ai une problématique qui me semble assez simple mais que je n'arrive pas à résoudre car je connais peux le xml et ce qui tourne autour.

Pour faire simple, imaginons que j'ai 2 tables (ou 2 fichiers xml, c'est pareil), une pour les noms de famille, l'autre pour les prénoms. Les 2 sont liés par un id.

Exemple de famille :
Code :
1
2
3
4
 
id_foyer  famille
1           toto
2           titi
Exemple de prénoms :
Code :
1
2
3
4
5
 
id  id_foyer   prenom
50  1            vincent
51  1            paul
52  2            hervé
le lien entre les 2 tables se fait via id_foyer.

J'arrive facilement à produire un fichier xml qui ressemble à ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<data>
  <id_foyer>1</id_foyer>
  <famille>toto</famille>
  <id>50</id>
  <prenom>vincent</prenom> 
</data>
<data>
  <id_foyer>1</id_foyer>
  <famille>toto</famille>
  <id>51</id>
  <prenom>paul</prenom>
</data>
...
En gros, c'est le résultat qui correspond à un left join sql.
L'export que j'ai besoin de faire doit se faire sous la forme d'un arbre. Exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<famille>
  <id_foyer>1</id_foyer>
  <famille>toto</famille>
  <prenoms>
     <id>50</id>
    <prenom>vincent</prenom> 
  </prenoms>
  <prenoms>
     <id>51</id>
     <prenom>paul</prenom> 
   <prenoms>
</famille>
...
En règle général, je fais des petits bout de code en procédure stockées ou en C, mais pour le coup, je coince. De plus la table qui représente le pied de l'arbre compte environ 15 millions de lignes.

J'ai commencé à regarder du côté de XSLT, j'ai l'impression qu'en creusant, je dois pouvoir faire quelque chose.
Avez vous des pistes à me donner ?
Merci par avance.
htristra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 09h03   #2
Erwy
Rédacteur
 
Avatar de Erwy
 
Homme erwan
Développeur Web
Inscription : novembre 2003
Messages : 4 980
Détails du profil
Informations personnelles :
Nom : Homme erwan
Âge : 36
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2003
Messages : 4 980
Points : 11 894
Points : 11 894
Ben non ce n'est pas pareil

Si ce n'est pas du XML et que tu es sur Oracle, SQL Server ou postgreSQL tu peux obtenir directement ce format avec une simple requête SQL et les fonctions xmlelement,xmlagg et autres
__________________
modérateur/rédacteur XML
Je ne reponds pas aux questions par MP

Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation
Erwy est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/07/2011, 13h47   #3
htristra
Futur Membre du Club
 
Inscription : juillet 2005
Messages : 64
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 64
Points : 18
Points : 18
Envoyer un message via MSN à htristra
Bonjour Erwy

quand je dis "c'est pareil", c'est plus pour dire que je peux exporter mes tables vers un fichier texte, xml pour créer mon arbre en dehors d'un sgbd.

Je vais suivre ta piste pour voir.
htristra est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h54.


 
 
 
 
Partenaires

Hébergement Web