RPG で XML 文書を処理する (その 2)

RPG で XML 文書を処理する (その 1)」の続きを、別の XML ファイルを使ってやってみました。


コーディング例 (XML-INTO 命令)

以前 XML Extender の記事で使った XML ファイルを使ってみました。

コードはこんなかんじです。

D Order           DS                  Qualified                 
D Key                            5  0                           
D  customer                           LikeDS(Customer)          
D  part                               LikeDS(Part)              
D                                     dim(2)                    
 *                                                              
D Customer        DS                  Qualified                 
D  name                         20                              
D  email                        20                              
 *                                                              
D Shipment        DS                  Qualified                 
D  shipdate                     10                              
D  shipmode                     10                              
 *                                                              
D Part            DS                  Qualified                 
D  color                         5                              
D  key                           5                              
D  quantity                      2  0                           
D  extendedprice                10  0                           
D  tax                           3  2                                       
D  shipment                           LikeDS(Shipment)                      
D                                     dim(2)                                
 *                                                                          
 /Free                                                                      
      XML-INTO Order %XML( '/home/XML/neworder1.xml' : 'doc=file +          
                                       case=any +                           
                                       allowextra=yes +                     
                                       allowmissing=yes') ;                 
      *inLR = *on ;                                                         
      return ;                                                              
 /End-Free

やはり、いかに元の XML ファイルの構造をデータ・ストラクチャーに移し変えるか、が最初の課題ですね。
階層はデータストラクチャーの中に LikeDS キーワードを利用して下位構造になるデータストラクチャーをセットすることで対応します。
繰り返しはデータストラクチャーの配列を使用することで対処します。今回は結果を見やすくするために、もともとの繰り返しと同じ数だけ用意しています。

XML 文書は、iSeries ナビゲーターの「ファイル・システム」経由で IFS に転送しています。
以下のように CCSID は 943 になっています。

edtf コマンドで内容をみると、こんなかんじです。

ちゃんと XML 文書のとおりに結果が取得できているのが確認できますね。

[Top Pageに戻る]

Ads by TOK2