Rechercher : dans
Par :

XSL : accéder à plusieurs fichiers XML

Dernière réponse le 11 jan 2006 à 10:17:09 elacsap, le 10 jan 2006 à 16:27:21 
 Signaler ce message aux modérateurs

Bonjour,
J'ai un problème de XML... Je dois afficher plusieurs fichiers XML dans une seule page web (après traitement via une XSL). Tous mes docs XML sont construits sur le même modèle. Comment les traiter de manière récursive ?
J'arrive à récupérer les attributs sans problème... Le hic c'est quand je dois créer un template sur l'un des éléments de mes docs xml... J'ai un peu du mal à m'expliquer, désolée...
Merci d'avance pour votre aide !!!

Meilleures réponses pour « XSL : accéder à plusieurs fichiers XML » dans :
Mise en page de XML avec XSL VoirIntroduction à XSL XML est un langage de structuration des données, et non de représentation des données. Ainsi XSL (eXtensible StyleSheet Language) est un langage recommandé par le W3C pour effectuer la représentation des données de documents XML....

1

crabs, le 10 jan 2006 à 20:54:07

Salut,
Y a un problème de logique, c'est le XML qui définit la référence d'un XSL et
par l'inverse.
Une solution peut consiter à faire un document XML chapeau référençant le
fichier XSL et incluant (par insertion) tous tes fichiers XML.
A+, crabs ..., I think Slackware sounds better than 'Microsoft,'
-- Patrick Volkerding - founder and maintainer of Slackware

Répondre à crabs

2

elacsap, le 11 jan 2006 à 09:07:53

Merci pour ta réponse, je m'étais mal expliquée...
Je définit effectivement la référence des fichiers xml dans mon xml... Mon problème c'est l'accès à ces fichiers dans mon xml... Tout va bien lorsque je veux récupérer une simple info comme cela :

<xsl:value-of select="document(.)//noeud1/noeud2"/>


Le problème arrive quand je dois créer un template et faire une boucle :

<xsl: template match="document(.)//noeud1">


cela ne fonctionne pas... Comment dois-je procéder ?

Répondre à elacsap

3

teebo, le 11 jan 2006 à 09:28:40

Salut,
Je ne comprend toujours pas :-/

Tu pourrais donner un exemple concret de tes données de départ, de ce que tu as à l'arrivée et de ce que tu aimerais avoir?
Those who would give up essential Liberty, to purchase a little
temporary Safety, deserve neither Liberty nor safety

(Benjamin Franklin)

Répondre à teebo

4

elacsap, le 11 jan 2006 à 09:41:21

J'ai créer un doc xml constitué de la manière suivante :

<racine>
<fichier>xml1.xml</fichier>
<fichier>xml2.xml</fichier>
</racine>


Mes fichiers xml1 et xml2 sont construits de la même manière... Je souhaiterai pouvoir afficher à la suite l'uin de l'autre mon xml1 et xml2, un peu comme ça :

<racine>
<fichier>
<titre/>
<noeud><info1/><info2/></noeud>
<noeud><info1/><info2/></noeud>
</fichier>
<fichier>
<titre/>
<noeud><info1/><info2/></noeud>
<noeud><info1/><info2/></noeud>
<noeud><info1/><info2/></noeud>
</fichier>
</racine>


Dans mon xsl, je n'ai aucun problème pour traiter la balise <titre> qui n'a qu'une occurence... Par contre, je n'arrive pas à créer un template pour ne travailler que sur la balise <noeud>...
Est-ce que je suis un peu plus claire ? (désolée j'ai du mal à m'expliquer...)

Répondre à elacsap

5

teebo, le 11 jan 2006 à 09:48:34

OK, je crois comprendre, mais quand tu mets, xml1.xml, tu le mets comment?

Those who would give up essential Liberty, to purchase a little
temporary Safety, deserve neither Liberty nor safety

(Benjamin Franklin)

Répondre à teebo

6

elacsap, le 11 jan 2006 à 10:06:42

Comme ça :
<fichier>xml1.xml</fichier>

ça me semble bizare comme truc, mais bon ça fontionne pour les balises simples...

Répondre à elacsap

7

teebo, le 11 jan 2006 à 10:08:32

Ca me semble même franchement douteux :-/

Ta sortie c'est un xml ou du html?
Si c'est du html tu peux aussi taper dans les frames comme solution de remplacement...
Those who would give up essential Liberty, to purchase a little
temporary Safety, deserve neither Liberty nor safety

(Benjamin Franklin)

Répondre à teebo

8

elacsap, le 11 jan 2006 à 10:10:38

Waouh tu réponds vraiment rapidement, merci !!!
ma sortie est en html...
Qu'entends-tu par taper dans les frames ?

Répondre à elacsap

9

teebo, le 11 jan 2006 à 10:15:44

Si seulement j'étais aussi rapide pour mon boulot :-/

Pour les frames, tu peux générer deux fichier html (sortie1 et sortie2 par exemple), un pour chaque fichier xml, et tu fais un fichier sortie.html qui contient une frame en haut qui montre sortie1.html et une en bas qui montre sortie2.html.
Mais bon, c'est pas l'extase :-S Those who would give up essential Liberty, to purchase a little
temporary Safety, deserve neither Liberty nor safety

(Benjamin Franklin)

Répondre à teebo

10

 elacsap, le 11 jan 2006 à 10:17:09

Bon ben je crois que je vais chercher une autre solution pour afficher tout ça... Merci pour ton aide !

Répondre à elacsap