[XPath] Enfants en doublons
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:
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:
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 ?
Code:
//A[count(//@name)>1]
Merci d'avance pour vos réponses ! :)
++ Pop