Suivez les fils RSS
 
Auteur
GrandVampire
# 26 Feb 2010 - 15:37:56
Citer
13 Posts
Bonjour,

je dois transformer un fichier xml avec xslt, mais certaines informations de test sont stockées dans un autre fichier xml:

ex. xslt doit chercher dans 1.xml si il y a des données identiques à celles contenues dans 2.xml

est-ce possible?
comment faire? biggrin

est-ce que la même chose serait possible sur le contenu d'un array dans un fichier javascript?

Merci beaucoup,

Grandvampire
Modifié par GrandVampire (01 Mar 2010 - 12:30)

^
dragonfire34
# 26 Feb 2010 - 20:41:56
Citer
5 Posts
Bonsoir,
Une façon déjà d'intégrer les données d'une feuille xml externe est la suivante dans la feuille xsl :

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:xlink="http://www.w3.org/1999/xlink">

<xsl:output method='html'
indent="no"
encoding="iso-8859-1"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" />

<xsl:variable name="infos_tests" select="document('../infos_tests.xml')" />

<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>

<xsl:template match="balise_de_valeur_a_tester">
<xsl:variable name="valeur_a_tester">
<xsl:value-of select="."/>
</xsl:variable>
<xsl:variable name="valeur_de_test">
<xsl:value-of select="$infos_tests//racine_document/valeur_de_test"/>
</xsl:variable>
<xsl:if test="$valeur_a_tester=$valeur_de_test">
EXECUTER CODE....
</xsl:if>
</xsl:template>

</xsl:stylesheet>

Vous associez cette feuille de style à votre document principal ou vous l'appelez en PHP ou AJAX.
N'oubliez pas que vous pouvez associer des modes à vos traitements pour différencier les résultats.
<xsl:apply-templates select="$valeur_a_tester" mode="templates_01" />
<xsl:template match="mon_template" mode="template_01">
</xsl:template>

J'espère ne pas avoir introduit trop de bug, je n'ai pas testé mais l'idée y est !
Bon courage.

^
Gilles
# 01 Mar 2010 - 09:46:54
Citer
1003 Posts
La fonction la plus importante pour ce que tu cherches à faire dans le code donné par dragonfire34 est la fonction document() de XPath, qui prend en argument une chaîne de caractère qui donne le chemin vers un autre fichier XML à analyser.

Donne à une personne un poisson, elle se nourrira pendant un jour.
Apprends-lui à pêcher, elle se nourrira toute sa vie.

Kuan-Tseu

http://www.gchagnon.fr/ 
^
GrandVampire
# 01 Mar 2010 - 12:30:11
Citer
13 Posts
Merci beaucoup pour vos réponses qui m'ont bien aidé à réaliser ce que je voulais faire smile

Grandvampire

^
rimousky
# 17 Apr 2010 - 22:35:52
Citer
La nuit porte conseil !
52 Posts
Tiens la réponse de dragonfire34 me donne des idées car elle pourrait répondre à un problème d'agrégation de fichiers que je n'arrive pas à résoudre avec XInclude. je vais faire le test.

Cordialement
Rimousky

^