- PR -

日付の値を以上以下で検索

1
投稿者投稿内容
しょうご
会議室デビュー日: 2002/05/07
投稿数: 6
投稿日時: 2002-05-22 17:10
 こんにちは。

<Page>
<PaperName>なんちゃら新聞</PaperName>
<PublishDate>2002/3/18</PublishDate>
<PageNo.>1</PageNo.>
<FileName>なんちゃら新聞2002年03月18日01.tif</FileName>
<FileID>2002031801.tif</FileID>
<PreviewImage>なんちゃら新聞2002年03月18日01.jpg</PreviewImage>
<PreviewID>2002031801.jpg</PreviewID>
</Page>
<Page>
<PaperName>なんちゃら新聞</PaperName>
<PublishDate>2002/3/18</PublishDate>
<PageNo.>2</PageNo.>
<FileName>なんちゃら新聞2002年03月18日02.tif</FileName>
<FileID>2002031802.tif</FileID>
<PreviewImage>なんちゃら新聞2002年03月18日02.jpg</PreviewImage>
<PreviewID>2002031802.jpg</PreviewID>
</Page>

 上のようなXML文書の中のPublishDateノード内を、日付の範囲を指定して検索をしたいのですが、どのようにしたらよいのかわかりません。
 JavascriptとXSLを使って、HTMLに書き出しています。
井上孝司
ぬし
会議室デビュー日: 2001/09/08
投稿数: 668
お住まい・勤務地: 東京都
投稿日時: 2002-05-22 18:06
井上です。
substring-before() 関数と substring-after() 関数を組み合わせると、
yyyy/mm/dd 形式の日付から yyyy と mm と dd を個別に取り出すことが
できます。これと、format-number() 関数を組み合わせると、月や日の数
値が一桁のときに、頭に「0」を補うことができます。
あとは、これらを concat() 関数で全部くっつければ、yyyy/mm/dd が
yyyymmdd に変換できます。これで、数値として大小比較できます。

逆に、XML 文書中では yyyymmdd 形式で書いておいて、桁数を指定して
substring() 関数で yyyy と mm と dd を個別に取り出し、concat()
関数で「/」を挟みながら連結して出力する、という方法もありますね。

# 実はこの話、近日刊行予定の XSLT の解説書に書いたネタ、
# そのまんまです (^^;
_________________
www.kojii.net
1

スキルアップ/キャリアアップ(JOB@IT)