我有一些像这样的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"/>
我正在尝试定位MT
N=target_tag
和数字(1或2)。
以下内容不起作用,尽管我希望this link:
<xsl:variable name="display" select="MT[@N = 'target_tag' and 2]/@V" />
如果我试试这个,我会一直得到第一个:
<xsl:variable name="display" select="MT[@N = 'target_tag']/@V" />
如果我试试这个,我会一直得到第二个MT标签(在这个例子中是“更多文字”):
<xsl:variable name="display" select="MT[2]/@V" />
我也试过这个也没有运气:
<xsl:variable name="display" select="MT[2][@N = 'target_tag']/@V" />
根据我的要求,我需要将它们组合起来,这样当我循环遍历递归函数时,我可以显示第一个,然后是第二个,然后是第三个。
任何想法如何组合起来?
答案 0 :(得分:1)
select="MT[@N = 'target_tag'][2]"
应该有用。
答案 1 :(得分:0)
输入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>
<强> XSLT:强>
<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>
<强>输出:强>
我想要这个和