[XML-XSL] références interfichiers
J'ai deux fichiers XML:
je voulais savoir comment faire pour parcourir deux fichiers XML à l'aide d'une même feuille de style
Mon but serait de parcourir mon premier fichier et à chaque élement récupérer son type contenu dans le
second fichier (dans Doc/TYPE/TResources/Attributes) puis à l'aide de cet attribut récupérer son type(Doc/TYPE).
exemple
----------
on aura alors a l'affichage
PModule
Type=String
Value=Module.xml
j'espère mettre bien exprimer et que quelqu'un peux m'éclairer.je suis en stage et ca bloque mon travail.
fichier1.xml
--------------------------------------------------------------------------------------
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <Value>
<PResources>
<PModule Value="Module.xml"/>
<PReference Value="RefFile.xml"/>
<PTarget Value="RefTarget.xml"/>
<PTolerance>
<PPourcentageTolerance Value="5"/>
<PToleranceMin Value="30"/>
<PToleranceMax Value="80"/>
<PPourcentageTolTemps Value="15"/>
</PTolerance>
</PResources>
</Value> |
fichier2.xml
--------------------------------------------------------------------------------------
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <Doc>
<TYPE>
<TModule Type="String" Default="DicoMresIDataEn.xml"/>
<TReference Type="String" Default="RefFileTransmitter.xml"/>
<TTarget Type="String" Default="RefFileTarget.xml"/>
<TPourcentageTolerance Type="Double" Default="1.0" />
<TPourcentageTolTemps Type="Double" Default="2.0" />
<TToleranceMax Type="Double" Default="8" />
<TToleranceMin Type="Double" Default="35" />
<TTolerance Type="Struct" >
<attributes>
<PPourcentageTolerance Type="TPourcentageTolerance"/>
<PToleranceMin Type="TToleranceMin"/>
<PToleranceMax Type="TToleranceMax"/>
<PPourcentageTolTemps Type="TPourcentageTolTemps"/>
</Attributes>
</TTolerance>
<TResources Type="Struct" Label="Ressources">
<attributes>
<PModule Type="TModule"/>
<PReference Type="TReference"/>
<PTarget Type="TTarget"/>
<PTolerance Type="TTolerance"/>
</Attributes>
</TResources>
</TYPE>
<VAR>
<PResources Type="TResources"/>
</VAR>
</Doc> |
--------------------------------------------------------------------------------------
voila ce que j'ai essayé de faire
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| <?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:variable name="dico" select="document('fichier2.xml')"/>
<xsl:for-each select="Value//*">
<xsl:variable name="p" select="name()"/>
<xsl:value-of select ="$p"/>
<br></br>
<xsl:for-each select="$dico/Dico/TYPEDEF/TResources/Attributes//*">
<xsl:value-of select ="name()"/>
<xsl:variable name="t" select="name()"/>
<xsl:for-each select="@*">
</xsl:for-each>
<xsl:value-of select ="$t"/>
<xsl:if test="'$t'='$p'">
...
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet> |