2

2つの日付の間の日付のリストを取得する必要があります-たとえば、開始日03302012と終了日05302012があり、次のような出力が必要です

03302012
03312012
04012012
04022012
...
05282012
05292012
05302012
  • あなたの日付形式を自由に使用してください - 私は自分で変換します. どうもありがとうございました!
4

2 に答える 2

0

残念ながら、XSLT 1.0 自体はそのようなタスクには適していませんが、その環境は通常便利です。以下は、私が自分で使用したいくつかのアプローチです。

  1. 最も簡単な解決策は、通常、そのようなリストを入力の一部にすることです =)

  2. XSLT 変換は、通常、特定の XSLT プロセッサを備えた大規模なアプリケーションの一部であり、特定の手段を使用してその拡張を行うことができます。必要なノード セットを返す拡張関数を (プロセッサに応じて Java、Javascript、PHP、Python を使用して) 記述できます。もう1つの同様のオプションは、「ストリーム」を(少なくともPHPに関して)登録し、のdocumentようなURLで関数を使用してノードセットを取得することapp://Dates/listdates?start=a&end=bです。欠点は、スタイルシートがアプリケーションと結合されており、個別に開発できないことです。

  3. ほとんどの XSTL プロセッサは、EXSLT 拡張機能をサポートしています。日付拡張を使用して日付間の日数を計算し、padding文字列拡張から関数を使用して長さの文字列を生成し、空の文字列で文字列を分割して (必要な長さの) トークンのリストを取得し、次を使用してリストを反復処理できます。node-set関数を使用して、現在のノード位置を最初の日付に追加しますdate-add

  4. Bogdan の提案に従って、純粋な XSLT と再帰テンプレートを使用します。

于 2012-04-10T21:49:40.393 に答える