在 XPath 中组合谓词
我有一些像这样的 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"/>
我试图以 N=target_tag
和数字(1 或 2)定位 MT
。
尽管我希望从 此链接获得以下内容,但以下内容不起作用:
<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" />
根据我的要求,我需要将它们结合起来,这样当我正在循环一个递归函数,我可以显示第一个,然后是第二个,然后是第三个。
有什么想法可以将它们结合起来吗?
I have some XML like this:
<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"/>
I'm trying to target the MT
where N=target_tag
and by number (1 or 2).
The following doesn't work, despite what I was hoping from this link:
<xsl:variable name="display" select="MT[@N = 'target_tag' and 2]/@V" />
If I try this, I consistently get the first one:
<xsl:variable name="display" select="MT[@N = 'target_tag']/@V" />
And if I try this, I consistently get the second MT tag (so "more text" in this example):
<xsl:variable name="display" select="MT[2]/@V" />
I've tried this with no luck too:
<xsl:variable name="display" select="MT[2][@N = 'target_tag']/@V" />
Based on my requirements, I need to combine them, so that when I'm looping through a recursive function I can show the first, then the second, then the third.
Any ideas how these can be combined?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
select="MT[@N = 'target_tag'][2]"
应该可以。select="MT[@N = 'target_tag'][2]"
should work.输入 XML:
XSLT:
输出:
我想要这个和这个
Input XML:
XSLT:
Output:
i want thisand this