配列変数での 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
- 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 - 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' - mydata.xml に以下が含まれていると想定します。
この例は、前の例と似ていますが、 RPG データ構造 loc の名前は、 反復 XML 要素 where の名前と異なります。コンテナー XML 要素 data の名前と 反復 XML 要素 where の名前を使用して、path オプションを path=data/where と指定する必要があります。<data> <where><city>Edmonton</city><prov>AB</prov></where> <where><city>Toronto</city><prov>ON</prov></where> </data>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'
