D loc DS DIM(2)
D city 20A VARYING
D prov 2A
D arr S 5I 0 DIM(3)
D xmlDoc S 1000A VARYING
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
<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'
<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'
