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']:
J'ai écrit une petite routine qui répond à mon besoin :Code:
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>
... 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 ?Code:
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>
Merci d'avance pour vos réponses ! :)Code://A[count(//@name)>1]
++ Pop