2つの日付の間の日付のリストを取得する必要があります-たとえば、開始日03302012と終了日05302012があり、次のような出力が必要です
03302012 03312012 04012012 04022012 ... 05282012 05292012 05302012
- あなたの日付形式を自由に使用してください - 私は自分で変換します. どうもありがとうございました!
残念ながら、XSLT 1.0 自体はそのようなタスクには適していませんが、その環境は通常便利です。以下は、私が自分で使用したいくつかのアプローチです。
最も簡単な解決策は、通常、そのようなリストを入力の一部にすることです =)
XSLT 変換は、通常、特定の XSLT プロセッサを備えた大規模なアプリケーションの一部であり、特定の手段を使用してその拡張を行うことができます。必要なノード セットを返す拡張関数を (プロセッサに応じて Java、Javascript、PHP、Python を使用して) 記述できます。もう1つの同様のオプションは、「ストリーム」を(少なくともPHPに関して)登録し、のdocument
ようなURLで関数を使用してノードセットを取得することapp://Dates/listdates?start=a&end=b
です。欠点は、スタイルシートがアプリケーションと結合されており、個別に開発できないことです。
ほとんどの XSTL プロセッサは、EXSLT 拡張機能をサポートしています。日付拡張を使用して日付間の日数を計算し、padding
文字列拡張から関数を使用して長さの文字列を生成し、空の文字列で文字列を分割して (必要な長さの) トークンのリストを取得し、次を使用してリストを反復処理できます。node-set
関数を使用して、現在のノード位置を最初の日付に追加しますdate-add
。
Bogdan の提案に従って、純粋な XSLT と再帰テンプレートを使用します。