Xslt 在XPath中组合谓词

Xslt 在XPath中组合谓词,xslt,xpath,xslt-1.0,predicate,google-search-appliance,Xslt,Xpath,Xslt 1.0,Predicate,Google Search Appliance,我有这样一些XML: <MT N="tag1" V="text"/> <MT N="tag2" V="more text"/> <MT N="tag3" V="other text"/> <MT N="tag4" V="something cool"/> <MT N="target_tag" V="i want this"/> <MT N="target_tag" V="and this"/> 如果我尝试这个,我总是得到第

我有这样一些XML:

<MT N="tag1" V="text"/>
<MT N="tag2" V="more text"/>
<MT N="tag3" V="other text"/>
<MT N="tag4" V="something cool"/>
<MT N="target_tag" V="i want this"/>
<MT N="target_tag" V="and this"/>
如果我尝试这个,我总是得到第一个:

<xsl:variable name="display" select="MT[@N = 'target_tag']/@V" />

如果我尝试这样做,我会一直得到第二个MT标记(因此在本例中为“更多文本”):


我也尝试过,但运气不好:

<xsl:variable name="display" select="MT[2][@N = 'target_tag']/@V" />

根据我的需求,我需要组合它们,这样当我循环递归函数时,我可以显示第一个,然后是第二个,然后是第三个


有什么想法可以把它们结合起来吗?

选择=“MT[@N='target\u tag'][2]”应该可以用。

输入XML:

<root>
<MT N="tag1" V="text"/>
<MT N="tag2" V="more text"/>
<MT N="tag3" V="other text"/>
<MT N="tag4" V="something cool"/>
<MT N="target_tag" V="i want this"/>
<MT N="target_tag" V="and this"/>
</root>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="root">
        <xsl:for-each select="MT">
            <xsl:if test="@N = 'target_tag'">
                <xsl:value-of select="@V"/>
            </xsl:if>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

XSLT:

<root>
<MT N="tag1" V="text"/>
<MT N="tag2" V="more text"/>
<MT N="tag3" V="other text"/>
<MT N="tag4" V="something cool"/>
<MT N="target_tag" V="i want this"/>
<MT N="target_tag" V="and this"/>
</root>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="root">
        <xsl:for-each select="MT">
            <xsl:if test="@N = 'target_tag'">
                <xsl:value-of select="@V"/>
            </xsl:if>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

输出:

<root>
<MT N="tag1" V="text"/>
<MT N="tag2" V="more text"/>
<MT N="tag3" V="other text"/>
<MT N="tag4" V="something cool"/>
<MT N="target_tag" V="i want this"/>
<MT N="target_tag" V="and this"/>
</root>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="root">
        <xsl:for-each select="MT">
            <xsl:if test="@N = 'target_tag'">
                <xsl:value-of select="@V"/>
            </xsl:if>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>
我要这个和这个