如何让xsl使用for循环获取项目,但只选择最多的某个索引。我尝试做的是获取一个由web服务控制的数字,并将out_data_info中的项目返回到该索引。我遇到的问题是它只返回该索引处的数据,而不是返回该索引之前的所有内容。
<xsl:variable name="count" select=".//out_rec_count/text()"/>
<xsl:for-each select="//out_data_info[number($count)]">
<xsl:apply-templates select="." />
</xsl:for-each>
在为每个循环使用a时,有没有办法做我想要的?
答案 0 :(得分:1)
<xsl:for-each select="//out_data_info[position() <= $count]">
会选择所有out_data_info
个元素,这些元素是其父元素的第一个,第二个,$count
- out_data_info
子元素。根据源XML的结构,这可能完全正确也可能不完全正确(如果您想要一个完整的答案,您必须编辑问题以包含输入的示例) - 您可能会发现需要
<xsl:for-each select="/descendant::out_data_info[position() <= $count]">
相反,它会在整个文档中选择$count
次out_data_info
次出现,无论它们在父元素中的位置如何。
(这是descendant::
和//
意味着略有不同的边缘情况之一)