0

for eachループを使用してxslにアイテムを取得させるにはどうすればよいですか?ただし、選択されたものの特定のインデックスまでのみです。私が試したのは、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の最初、2番目、...$count番目の子であるすべての要素を選択します。out_data_infoこれは、ソースXMLの構造に応じて、正確に正しい場合とそうでない場合があります(正確な回答が必要な場合は、入力の例を含めるように質問を編集する必要があります)-必要な場合があります

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

代わりに、親要素内のどこにあるかに関係なく、ドキュメント全体で最初$countに出現するものを選択します。out_data_info

(これは、わずかに異なることdescendant::を意味するエッジケースの1つです)//

于 2013-02-21T18:46:23.730 に答える