前のページ|次のページ

連結されたXMLドキュメントのインポート

連結された複数のXMLドキュメントからなるファイルをインポートするには、XML Engineを使用します。これを行うには、LIBNAMEステートメントでXMLCONCATENATE=YESオプションを指定します。
注: XMLCONCATENATE=YESオプションを使用する場合には注意が必要です。XMLドキュメントが連結された複数のXMLドキュメントから構成されている場合、そのドキュメントの内容は標準的なXML構成ではありません。このオプションは、利便性のために提供されているものであり、無効なXMLマークアップを奨励するものではありません。
次の例では、2つのXMLドキュメントから構成されるファイルConcatStudents.XMLをインポートします。
<?xml version="1.0" ?>
<LIBRARY>
   <STUDENTS>
      <ID>1345</ID>
      <NAME>Linda Kay</NAME>
      <SCHOOL>Bellaire</SCHOOL>
      <CITY>Houston</CITY>
   </STUDENTS>
   <STUDENTS>
      <ID>2456</ID>
      <NAME>Chas Wofford</NAME>
      <SCHOOL>Sam Houston</SCHOOL>
      <CITY>Houston</CITY>
   </STUDENTS>
   <STUDENTS>
      <ID>3567</ID>
      <NAME>Jerry Kolar</NAME>
      <SCHOOL>Sharpstown</SCHOOL>
      <CITY>Houston</CITY>
   </STUDENTS>
</LIBRARY>

<?xml version="1.0" ?>
<LIBRARY>
   <STUDENTS>
      <ID>1234</ID>
      <NAME>Brad Martin</NAME>
      <SCHOOL>Reagan</SCHOOL>
      <CITY>Austin</CITY>
   </STUDENTS>
   <STUDENTS>
      <ID>2345</ID>
      <NAME>Zac Harvell</NAME>
      <SCHOOL>Westwood</SCHOOL>
      <CITY>Austin</CITY>
   </STUDENTS>
   <STUDENTS>
      <ID>3456</ID>
      <NAME>Walter Smith</NAME>
      <SCHOOL>Bowie</SCHOOL>
      <CITY>Austin</CITY>
   </STUDENTS>
</LIBRARY>
まず、デフォルトのXML Engineの動作を使用する例を示します。この場合、XMLCONCATENATE=NOとなるため、XML Engineは連結されているXMLドキュメントをサポートしません。次のSASプログラムを実行すると、先頭のXMLドキュメント(3つのオブザベーションを含んでいるもの)のみがインポートされ、2番目のXMLドキュメントに関してはエラーが生成されます。
libname concat xml '/u/My Documents/XML/ConcatStudents.xml';

proc datasets library=concat;
SASログの出力
NOTE:Libref CONCAT was successfully assigned as follows:Engine:        XML Physical Name:/u/My Documents/XML/ConcatStudents.xml 20 proc datasets library=concat; ERROR:"xml" is illegal as a processing-instruction target name. encountered during XMLMap parsing occurred at or near line 23, column 7 Directory Libref CONCAT Engine XML Physical Name /u/My Documents/XML/ConcatStudents.xml XMLType GENERIC XMLMap NO XMLMAP IN EFFECT Member # Name Type 1 STUDENTS DATA
LIBNAMEステートメントでオプションXMLCONCATENATE=YESを指定すると、XML Engineが、連結された複数のXMLドキュメントを1つのSASデータセットとしてインポートできるようになります。
libname concat xml '/u/My Documents/XML/ConcatStudents.xml' xmlconcatenate=yes;

proc print data=concat.students;
run;
CONCAT.STUDENTSのPRINTプロシジャ出力
CONCAT.STUDENTSのPRINTプロシジャ出力
前のページ|次のページ|ページの先頭へ