2013-02-21 56 views
0

如何讓xsl抓取使用每個循環的項目,但僅限於某個指定的索引。我嘗試過的是採用一個由web服務控制的數字,並將out_data_info中的項目返回到該索引。我遇到的問題是,它只返回該索引處的數據,而不是直到該索引處的所有數據。每個循環的XSL只抓取特定索引的數據

<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> 

有沒有辦法做到我想要的而爲每個循環使用?

+0

看着'<'操作者或兄弟軸? – 2013-02-21 18:38:30

+0

我不允許使用<操作符,因爲我猜它看起來像是一個開放的克拉。 – 2013-02-21 18:45:58

+0

我希望你不用用'<'在XML中編寫文本,然後:( – 2013-02-21 18:56:12

回答

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

會選擇所有out_data_info元素是第一,第二,... $countout_data_info孩子的父元素。根據源XML的結構,這可能會也可能不會完全正確(如果您想得到確切答案,您需要編輯問題以包含輸入示例) - 您可能會發現需要

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

,而不管它們在它們的父元素內的什麼位置,它將在整個文檔中選擇出現$count的第一個$count10。

(這是的邊緣的情況下descendant:://意味着略有不同的事情之一)

+0

非常感謝!完美的作品。 – 2013-02-21 18:52:18