在XML文件中,我有一些代码部分如下所示:
<index indexName="Mots-matière">
<term anchor="d0e7624">apprentissage automatique</term>
</index>
因此,例如,我尝试收集<term>apprentissage automatique</term>
属性的元素有很多@anchor
。
选择所有与当前节点相同的节点的好方法是什么?
我想到这样的事情,但我确实想念一些事情:
<xsl:for-each select="current() = //term">
<xsl:value-of select="term/@anchor"/>
</xsl:for-each>
我该怎么做?
答案 0 :(得分:1)
我认为您正在寻找的语法就是这个..
<xsl:for-each select="//term[. = current()]">
<xsl:value-of select="@anchor"/>
</xsl:for-each>
请注意,在这种情况下,您只需要选择@anchor
属性,因为您将位于term
内的xsl:for-each
元素上。
当然,只有当前节点是具有您想要的值的节点时,这才有效。
或者,您可以使用xsl:key
。在样式表的顶部定义一个像这样的键......
<xsl:key name="terms" match="term" use="." />
然后你可以这样做......
<xsl:for-each select="key('terms, current())">
<xsl:value-of select="@anchor"/>
</xsl:for-each>