0

如何让 xsl 使用 for each 循环来抓取项目,但只能在所选内容中达到某个索引。我尝试做的是获取一个由 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> 

有没有办法在使用 for each 循环时做我想做的事?

4

1 回答 1

1
<xsl:for-each select="//out_data_info[position() &lt;= $count]">

将选择作为其父元素的第一个、第二个out_data_info、...- th子元素的所有元素。这可能完全正确,也可能不完全正确,具体取决于源 XML 的结构(如果您想要一个准确的答案,您必须编辑问题以包含输入示例) - 您可能会发现您需要$countout_data_info

<xsl:for-each select="/descendant::out_data_info[position() &lt;= $count]">

相反,它将选择整个文档中第一次$count出现的out_data_info,而不管它们在其父元素中的什么位置。

(这是边缘情况之一,其中descendant:://含义略有不同)

于 2013-02-21T18:46:23.730 回答