Given the following XML fragment, extract the list of student names using whatever means desired. If the only viable method is to use XPath, refer the reader to the task XML and XPath.

<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>
Expected Output

April
Bob
Chad
Dave
Émily

 
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.