RosettaCodeData/Task/XML-Input/OpenEdge-Progress/xml-input.openedge

37 lines
1.3 KiB
Plaintext

DEF VAR lcc AS LONGCHAR.
DEF VAR hxdoc AS HANDLE.
DEF VAR hxstudents AS HANDLE.
DEF VAR hxstudent AS HANDLE.
DEF VAR hxname AS HANDLE.
DEF VAR ii AS INTEGER EXTENT 2.
DEF VAR cstudents AS CHARACTER.
lcc = '<Students>'
+ '<Student Name="April" Gender="F" DateOfBirth="1989-01-02" />'
+ '<Student Name="Bob" Gender="M" DateOfBirth="1990-03-04" />'
+ '<Student Name="Chad" Gender="M" DateOfBirth="1991-05-06" />'
+ '<Student Name="Dave" Gender="M" DateOfBirth="1992-07-08">'
+ '<Pet Type="dog" Name="Rover" />'
+ '</Student>'
+ '<Student DateOfBirth="1993-09-10" Gender="F" Name="&#x00C9;mily" />'
+ '</Students>'.
CREATE X-DOCUMENT hxdoc.
hxdoc:LOAD( 'LONGCHAR', lcc, FALSE ).
DO ii[1] = 1 TO hxdoc:NUM-CHILDREN:
CREATE X-NODEREF hxstudents.
hxdoc:GET-CHILD( hxstudents, ii[1] ).
IF hxstudents:NAME = 'Students' THEN DO ii[2] = 1 TO hxstudents:NUM-CHILDREN:
CREATE X-NODEREF hxstudent.
hxstudents:GET-CHILD( hxstudent, ii[2] ).
IF hxstudent:NAME = 'Student' THEN
cstudents = cstudents + hxstudent:GET-ATTRIBUTE( 'Name' ) + '~n'.
DELETE OBJECT hxstudent.
END.
DELETE OBJECT hxstudents.
END.
DELETE OBJECT hxdoc.
MESSAGE cstudents VIEW-AS ALERT-BOX.