Bonjour,

J'aimerais savoir comment afficher la valeur d'un attribut de l'ancêtre d'un noeud suivant ou précédent, si celui-ci possède une valeur identique d'un autre attribut.

Pour exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<NIV1 Name1="AA"  Name2="BB" >
  <NIV2 Name3="CC" Name4="DD"/>
</NIV1>
<NIV1 Name1="EE"  Name2="FF" >
  <NIV2 Name3="GG" Name4="HH"/>
</NIV1>
<NIV1 Name1="II"  Name2="JJ" >
  <NIV2 Name3="GG" Name4="KK"/>
</NIV1>
<NIV1 Name1="LL"  Name2="MM" >
  <NIV2 Name3="CC" Name4="NN"/>
</NIV1>
Dans cette exemple il faudrait que je récupère via XSLT:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<NIV Att1="CC" Att2="BB" Att3="MM"/>
<NIV Att1="GG" Att2="FF" Att3="JJ"/>
<NIV Att1="GG" Att2="JJ" Att3="FF"/>
<NIV Att1="CC" Att2="MM" Att3="BB"/>
du coup j'ai commencé comme ça:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<xsl:template match="//NIV2">
  <xsl:element name="NIV">
    <xsl:attribute name="Att1">
      <xsl:value-of select="@Name3"/>
    </xsl:attribute>
    <xsl:attribute name="Att2">
      <xsl:value-of select="ancestor::NIV1[1]/@Name2"/>
    </xsl:attribute>
    <xsl:attribute name="Att3">
      <xsl:value-of select="????????????"/>
    </xsl:attribute>
  </xsl:element>
</xsl:template>
Mais pour le Att3 je ne trouve pas malgrès avoir essayé différentes combinaisons "following" "following-sibling"........

Merci d'avance pour votre aide et j'espère avoir été assez clair.
Cordialement Xaros