2012-05-04 10 views
0

私のxml:for-each-groupの使い方は?

<articles> 
    <article> 
<metadata> 
<type>work</type> 
</metadta> 
<content>work force</content> 
    </article> 

    <article> 
<metadata> 
<type>sport</type> 
</metadta> 
<content>cricket s gentle man game</content> 
    </article> 

    <article> 
<metadata> 
<type>Life</type> 
</metadta> 
<content>Life is beatiful</content> 
    </article> 
    </articles> 

私のxsl:

<xsl:for-each-group select="article" group-by="type"> 
<xsl:for-each select="current-group()"> 
<xsl:value-of select="content/> 
</xsl:for-each> 
</xsl:for-each-group> 

私は取得しています: 労働力 クリケットの優しい男ゲーム 人生は美しいです

労働力 クリケットの優しい男ゲーム 人生は美しいです

労働力 クリケットの優しい男ゲーム 人生は美しい

である(すなわち、タイプのいいえ) ちょうど私が必要: 労働力を クリケットの優しい男ゲーム 人生は美しいです

+1

処理しようとしている構造を示すサンプルXMLファイルを質問に追加してください。また、変換の予想結果をお知らせください。 – Martin

+1

申し訳ありませんが、これはあなたの問題を再現する現実的な例ではありません。 XMLは整形式ではありません( ' ...')。また、XSLTスニペットはXML構造にはあまり適していません。 'group-by =" type "の代わりに、おそらく' group-by = "メタデータ/タイプ"を意味します。これらの問題を修正した後、グループ化は期待どおりに機能するはずです。 for-each-groupループが複数回実行される場合は、おそらく対応するテンプレートを複数回呼び出すことになります。したがって、問題を示す完全な例を提供してください。 – Martin

+1

@XSLT_FRESHER実際、この例では、すべての記事に異なる** type **要素があるため、実際にはグループ化する必要はありません。繰り返されるタイプのサンプルXMLを表示したいかもしれません。ありがとう! –

答えて

0

あなたは基 - をしたいですby = "メタデータ/タイプ"。