前のページ|次のページ

ISO 8601規格のSAS入力形式と出力形式を使用し、日付をインポートする

次の例では、基本出力形式および拡張出力形式の両方で表した日付値を含んでいるXMLドキュメントをインポートします。このXMLMapでは、FORMATおよびINFORMATの各要素を使用して、適切なSAS出力形式およびSAS入力形式を指定することにより、ISO 8601規格に従って日付を表示しています。
XMLドキュメントの内容は次のとおりです。
<?xml version="1.0" ?>
<Root>
  <ISODATE>
    <BASIC>20010911</BASIC>
    <EXTENDED>2001-09-11</EXTENDED>
  </ISODATE>
</Root>
次のXMLMapは、SAS入力形式およびSAS出力形式を使用してXMLドキュメントをインポートし、日付値の読み込みと書き出しを行います。
<?xml version="1.0" encoding="UTF-8"?>
<!-- ############################################################ -->
<!-- 2011-01-11T13:20:17 -->
<!-- SAS XML Libname Engine Map -->
<!-- Generated by XML Mapper, 903000.1.0.20101208190000_v930 -->
<!-- ############################################################ -->
<!-- ###  Validation report                                   ### -->
<!-- ############################################################ -->
<!-- XMLMap validation completed successfully. -->
<!-- ############################################################ -->
<SXLEMAP description="Reading a Basic and Extended format ISO date field" 
   name="ISOdate" version="2.1">

    <NAMESPACES count="0"/>

    <!-- ############################################################ -->
    <TABLE name="ISODATE">
        <TABLE-PATH syntax="XPath">/Root/ISODATE</TABLE-PATH>

        <COLUMN name="BASIC">
            <PATH syntax="XPath">/Root/ISODATE/BASIC</PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>date</DATATYPE>
            <FORMAT width="10">E8601DA</FORMAT> 1
            <INFORMAT width="8">B8601DA</INFORMAT> 2
        </COLUMN>

        <COLUMN name="EXTENDED">
            <PATH syntax="XPath">/Root/ISODATE/EXTENDED</PATH>
            <TYPE>numeric</TYPE>
            <DATATYPE>date</DATATYPE>
            <FORMAT>E8601DA</FORMAT> 3
            <INFORMAT width="10">E8601DA</INFORMAT> 4
        </COLUMN>

    </TABLE>

</SXLEMAP>
日付値をインポートするXMLMap構文についての説明を次に示します。
1 変数Basicに対して、FORMAT要素でSAS出力形式E8601DAを指定します。この出力形式は、日付値を拡張形式yyyy-mm-ddで出力します。
2 変数Basicに対して、INFORMAT要素でSAS入力形式B8601DAを指定します。この入力形式は、基本形式yyyymmddを使って日付値を変数に読み込みます。
注: この例では、推奨に従って、基本SAS入力形式を使って変数に値を読み込んだ後、対応する拡張SAS出力形式を使って同変数の値を出力しています。
3 変数Extendedに対して、FORMAT要素でSAS出力形式E8601DAを指定します。この出力形式は、日付値を拡張形式yyyy-mm-ddで出力します。
4 変数Extendedに対して、INFORMAT要素でSAS入力形式E8601DAを指定します。この入力形式は、基本形式yyyy-mm-ddを使って日付値を変数に読み込みます。
次のSASステートメントは、XMLドキュメントをインポートした後、PRINTプロシジャ出力を表示します。
filename dates 'C:\My Documents\XML\isodate.xml';
filename map 'C:\My Documents\XML\isodate.map';

libname dates xmlv2 xmlmap=map;

proc print data=dates.isodate;
run;
インポートされたデータセットDATES.ISODATEのPRINTプロシジャ出力
インポートされたデータセットDATES.ISODATEのPRINTプロシジャ出力
前のページ|次のページ|ページの先頭へ