Posez votre question Signaler

XSL : accéder à plusieurs fichiers XML

elacsap 13Messages postés 23 mai 2003Date d'inscription - Dernière réponse le 11 janv. 2006 à 10:17
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 !!!
Lire la suite 

XSL : accéder à plusieurs fichiers XML »

Suggestions
10 réponses
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
Ajouter un commentaire
Réponse
+0
moins plus
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?
elacsap - 11 janv. 2006 à 09:41
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...)
teebo - 11 janv. 2006 à 09:48
OK, je crois comprendre, mais quand tu mets, xml1.xml, tu le mets comment?

Ajouter un commentaire
Réponse
+0
moins plus
comme ça :
<fichier>xml1.xml</fichier>

ça me semble bizare comme truc, mais bon ça fontionne pour les balises simples...
teebo - 11 janv. 2006 à 10:08
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...
Ajouter un commentaire
Réponse
+0
moins plus
Waouh tu réponds vraiment rapidement, merci !!!
ma sortie est en html...
Qu'entends-tu par taper dans les frames ?
teebo - 11 janv. 2006 à 10:15
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
Ajouter un commentaire
Réponse
+0
moins plus
Bon ben je crois que je vais chercher une autre solution pour afficher tout ça... Merci pour ton aide !
Ajouter un commentaire
Ce document intitulé « XSL : accéder à plusieurs fichiers XML » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook