Bonjour à tous,

J'ai une problématique "toute simple" que je souhaiterais écrire directement en une seule requête XPath (j'imagine que ca doit etre possible ). Sur mon input xml, j'ai besoin de détecter les balises qui ont au moins 2 enfants identiques (la clé de recherche étant la valeur d'un attribut spécifique). Sur l'exemple ci-dessous, j'aimerais pouvoir identifier la balise A d'id 1 et ses enfants B[@name='prop']:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<A id="1">
<B name="prop"><![CDATA[1]]></B>
<B name="prop"><![CDATA[2]]></B>
<B name="disp"><![CDATA[3]]></B>
</A>
<A id="2">
<B name="prop"><![CDATA[4]]></B>
<B name="disp"><![CDATA[5]]></B>
</A>
J'ai écrit une petite routine qui répond à mon besoin :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<xsl:for-each select="//A">
<xsl:for-each select="B">
<xsl:variable name="N" select="@name"/>
  <xsl:if test="count(../B[@name=$N])>1">
    (...)
  </xsl:if>
</xsl:for-each>
</xsl:for-each>
... Mais j'avoue ne pas en être complètement satisfait ! J'ai un peu de mal à voir comment en XPath, je peux compter le nombre d'attributs enfants de même nom. Qqchose dans le style ?
Merci d'avance pour vos réponses !

++ Pop