変更の始まり

配列変数での path オプションの例

以下の例の中では次の定義が使用されています。
D loc             DS                   DIM(2)
D   city                        20A    VARYING
D   prov                         2A
D arr             S              5I 0  DIM(3)
D xmlDoc          S           1000A    VARYING
  1. XML 文書には、反復する arr 要素があり、 これらは最外部の XML 要素 outer の子です。これらの反復 XML 要素のデータを 受け取るための XML-INTO 命令のターゲットとして、RPG 配列が指定されています。RPG 配列 arr は、 反復する XML 要素 arr の名前 と一致しているため、path オプションは不要です。
      xmlDoc = '<outer>'
                  + '<arr>3</arr>'
                  + '<arr>4</arr>'
                  + '<arr>-2</arr>'
                  + '</outer> ;
      xml-into arr %XML(xmlDoc);
      // arr(1) = 3
      // arr(2) = 4
      // arr(3) = -2
  2. myarray.xml に以下が含まれていると想定します。
      <locations>
        <loc><city>Saskatoon</city><prov>SK</prov></loc>
        <loc><city>Regina</city><prov>SK</prov></loc>
      </locations>

    XML-INTO 命令のターゲットは、 データ構造からなる配列です。XML 文書には、コンテナー XML 要素 locations 内に、 loc という名前の反復 XML 要素が含まれています。 RPG データ構造配列の名前は loc であるため、path オプション は不要です。最外部の XML 要素の名前は考慮されません。

      xml-into loc %XML('myarray.xml' : 'doc=file');
      // loc(1).city = 'Saskatoon'  loc(2).city = 'Regina'
      // loc(1).prov = 'SK'         loc(2).prov = 'SK'
  3. mydata.xml に以下が含まれていると想定します。
      <data>
        <where><city>Edmonton</city><prov>AB</prov></where>
        <where><city>Toronto</city><prov>ON</prov></where>
      </data>
    この例は、前の例と似ていますが、 RPG データ構造 loc の名前は、 反復 XML 要素 where の名前と異なります。コンテナー XML 要素 data の名前と 反復 XML 要素 where の名前を使用して、path オプションを path=data/where と指定する必要があります。
      xmlfile = 'mydata.xml';
      xml-into loc %XML(xmlfile : 'path=data/where doc=file');
      // loc(1).city = 'Edmonton'   loc(2).city = 'Toronto'
      // loc(1).prov = 'AB'         loc(2).prov = 'ON'
変更の終わり