[FOR XML]renvoyer des données sous forme de XML hiérarchique
2 réponses
DigueDao
bonjour,
je voudrais g=E9n=E9rer un fichier XML =E0 partir d'une table.
En cherchant , j'ai trouv=E9 la commande FOR XML avec ses
diff=E9rentes variantes et la plus appropri=E9e pour mon cas
semble =EAtre EXPLICIT mais j'ai un peu de mal =E0 comprendre
comment =E7a marche, donc voici mon probleme:
J'ai une table Ecole avec les champs suivants=20
(IdClasse, NomClasse, IdEleve, NomEleve)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrice
La structure est-elle imposée. Si non il me semble plus correct d'avoir : - une table Ecole avec l'id et le nom - une table Elève avec l'id, le nom et l'école d'appartenance
Ensuite un simple FOR XML AUTO devrait suffire...
Avec le mode EXPLICIT cela sera sans doute un peu plus compliqué...
Patrice --
"DigueDao" a écrit dans le message de news:04fe01c4f3db$504764a0$ bonjour,
je voudrais générer un fichier XML à partir d'une table. En cherchant , j'ai trouvé la commande FOR XML avec ses différentes variantes et la plus appropriée pour mon cas semble être EXPLICIT mais j'ai un peu de mal à comprendre comment ça marche, donc voici mon probleme:
J'ai une table Ecole avec les champs suivants (IdClasse, NomClasse, IdEleve, NomEleve)
ca n'a pas l'air compliqué mais je gagnerai du temps si je pouvais comprendre cet exemple.
d:->>
La structure est-elle imposée. Si non il me semble plus correct d'avoir :
- une table Ecole avec l'id et le nom
- une table Elève avec l'id, le nom et l'école d'appartenance
Ensuite un simple FOR XML AUTO devrait suffire...
Avec le mode EXPLICIT cela sera sans doute un peu plus compliqué...
Patrice
--
"DigueDao" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:04fe01c4f3db$504764a0$3a01280a@phx.gbl...
bonjour,
je voudrais générer un fichier XML à partir d'une table.
En cherchant , j'ai trouvé la commande FOR XML avec ses
différentes variantes et la plus appropriée pour mon cas
semble être EXPLICIT mais j'ai un peu de mal à comprendre
comment ça marche, donc voici mon probleme:
J'ai une table Ecole avec les champs suivants
(IdClasse, NomClasse, IdEleve, NomEleve)
La structure est-elle imposée. Si non il me semble plus correct d'avoir : - une table Ecole avec l'id et le nom - une table Elève avec l'id, le nom et l'école d'appartenance
Ensuite un simple FOR XML AUTO devrait suffire...
Avec le mode EXPLICIT cela sera sans doute un peu plus compliqué...
Patrice --
"DigueDao" a écrit dans le message de news:04fe01c4f3db$504764a0$ bonjour,
je voudrais générer un fichier XML à partir d'une table. En cherchant , j'ai trouvé la commande FOR XML avec ses différentes variantes et la plus appropriée pour mon cas semble être EXPLICIT mais j'ai un peu de mal à comprendre comment ça marche, donc voici mon probleme:
J'ai une table Ecole avec les champs suivants (IdClasse, NomClasse, IdEleve, NomEleve)
ca n'a pas l'air compliqué mais je gagnerai du temps si je pouvais comprendre cet exemple.
d:->>
Fred
Bonjour, Au cas où tu voudrais garder une table unique, voilà une requête qui fonctionne : SELECT DISTINCT CLASSE.IdClasse, CLASSE.NomClasse, ELEVE.IdEleve, ELEVE.NomEleve FROM TEST AS CLASSE INNER JOIN TEST AS ELEVE ON CLASSE.IdClasse = ELEVE.IdClasse ORDER BY CLASSE.IdClasse, ELEVE.IdEleve FOR XML AUTO
(TEST est la table d'origine)
Le mode EXPLICIT est compliqué. Le seul cas où je me suis vu obligé de l'utiliser est le cas où un des champs contient lui même du XML que je veux réintégré dans le résultat final (sans que les caractères spéciaux <, >, etc... soient transformés en < > etc ...) On peut en général s'en sortir avec des jointures comme dans l'exemple ci dessus. Des spécialistes pourront peut-être compléter cette réponse.
"DigueDao" a écrit dans le message de news: 04fe01c4f3db$504764a0$ bonjour,
je voudrais générer un fichier XML à partir d'une table. En cherchant , j'ai trouvé la commande FOR XML avec ses différentes variantes et la plus appropriée pour mon cas semble être EXPLICIT mais j'ai un peu de mal à comprendre comment ça marche, donc voici mon probleme:
J'ai une table Ecole avec les champs suivants (IdClasse, NomClasse, IdEleve, NomEleve)
ca n'a pas l'air compliqué mais je gagnerai du temps si je pouvais comprendre cet exemple.
d:->>
Bonjour,
Au cas où tu voudrais garder une table unique, voilà une requête qui
fonctionne :
SELECT DISTINCT CLASSE.IdClasse, CLASSE.NomClasse, ELEVE.IdEleve,
ELEVE.NomEleve
FROM TEST AS CLASSE INNER JOIN TEST AS ELEVE ON CLASSE.IdClasse =
ELEVE.IdClasse
ORDER BY CLASSE.IdClasse, ELEVE.IdEleve
FOR XML AUTO
(TEST est la table d'origine)
Le mode EXPLICIT est compliqué. Le seul cas où je me suis vu obligé de
l'utiliser est le cas où un des champs contient lui même du XML que je veux
réintégré dans le résultat final (sans que les caractères spéciaux <, >,
etc... soient transformés en < > etc ...)
On peut en général s'en sortir avec des jointures comme dans l'exemple ci
dessus.
Des spécialistes pourront peut-être compléter cette réponse.
"DigueDao" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 04fe01c4f3db$504764a0$3a01280a@phx.gbl...
bonjour,
je voudrais générer un fichier XML à partir d'une table.
En cherchant , j'ai trouvé la commande FOR XML avec ses
différentes variantes et la plus appropriée pour mon cas
semble être EXPLICIT mais j'ai un peu de mal à comprendre
comment ça marche, donc voici mon probleme:
J'ai une table Ecole avec les champs suivants
(IdClasse, NomClasse, IdEleve, NomEleve)
Bonjour, Au cas où tu voudrais garder une table unique, voilà une requête qui fonctionne : SELECT DISTINCT CLASSE.IdClasse, CLASSE.NomClasse, ELEVE.IdEleve, ELEVE.NomEleve FROM TEST AS CLASSE INNER JOIN TEST AS ELEVE ON CLASSE.IdClasse = ELEVE.IdClasse ORDER BY CLASSE.IdClasse, ELEVE.IdEleve FOR XML AUTO
(TEST est la table d'origine)
Le mode EXPLICIT est compliqué. Le seul cas où je me suis vu obligé de l'utiliser est le cas où un des champs contient lui même du XML que je veux réintégré dans le résultat final (sans que les caractères spéciaux <, >, etc... soient transformés en < > etc ...) On peut en général s'en sortir avec des jointures comme dans l'exemple ci dessus. Des spécialistes pourront peut-être compléter cette réponse.
"DigueDao" a écrit dans le message de news: 04fe01c4f3db$504764a0$ bonjour,
je voudrais générer un fichier XML à partir d'une table. En cherchant , j'ai trouvé la commande FOR XML avec ses différentes variantes et la plus appropriée pour mon cas semble être EXPLICIT mais j'ai un peu de mal à comprendre comment ça marche, donc voici mon probleme:
J'ai une table Ecole avec les champs suivants (IdClasse, NomClasse, IdEleve, NomEleve)