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

// ========== routine for set code conversion ================
 
data 32, 173, 189, 156, 207, 190, 221, 245, 249, 184, 166, 174, 170, 32, 169, 238
data 248, 241, 253, 252, 239, 230, 244, 250, 247, 251, 167, 175, 172, 171, 243, 168
data 183, 181, 182, 199, 142, 143, 146, 128, 212, 144, 210, 211, 222, 214, 215, 216
data 209, 165, 227, 224, 226, 229, 153, 158, 157, 235, 233, 234, 154, 237, 232, 225
data 133, 160, 131, 198, 132, 134, 145, 135, 138, 130, 136, 137, 141, 161, 140, 139
data 208, 164, 149, 162, 147, 228, 148, 246, 155, 151, 163, 150, 129, 236, 231, 152
 
initCode = 160 : TOASCII = 0 : TOUNICODE = 1 : numCodes = 255 - initCode + 1
 
dim codes(numCodes)
 
for i = 0 to numCodes - 1 : read codes(i) : next
 
sub codeConversion(charcode, tocode)
    local i
 
    if tocode then
        for i = 0 to numCodes - 1
            if codes(i) = charcode return i + initCode
        next
    else
        return codes(charcode - initCode)
    end if
end sub
 
// ========== end routine for set code conversion ============
 
xml$ =  "<Students>\n"
xml$ = xml$ + "  <Student Name=\"April\" Gender=\"F\" DateOfBirth=\"1989-01-02\" />\n"
xml$ = xml$ + "  <Student Name=\"Bob\" Gender=\"M\"  DateOfBirth=\"1990-03-04\" />\n"
xml$ = xml$ + "  <Student Name=\"Chad\" Gender=\"M\"  DateOfBirth=\"1991-05-06\" />\n"
xml$ = xml$ + "  <Student Name=\"Dave\" Gender=\"M\"  DateOfBirth=\"1992-07-08\">\n"
xml$ = xml$ + "    <Pet Type=\"dog\" Name=\"Rover\" />\n"
xml$ = xml$ + "  </Student>\n"
xml$ = xml$ + "  <Student DateOfBirth=\"1993-09-10\" Gender=\"F\" Name=\"&#x00C9;mily\" />\n"
xml$ = xml$ + "</Students>\n"
 
tag1$ = "<Student"
tag2$ = "Name=\""
ltag = len(tag2$)
 
sub convASCII$(name$, mark$)
    local p, c, lm
 
    lm = len(mark$)
 
    do
        p = instr(name$, mark$, p)
        if not p break
        c = dec(mid$(name$, p + lm, 4))
        c = codeConversion(c)
        name$ = left$(name$, p-1) + chr$(c) + right$(name$, len(name$) - (p + lm + 4))
        p = p + 1
    loop
    return name$
end sub
 
do
    p = instr(xml$, tag1$, p)
    if not p break
    p = instr(xml$, tag2$, p)
    p = p + ltag
    p2 = instr(xml$, "\"", p)
    name$ = convASCII$(mid$(xml$, p, p2 - p), "&#x")
    print name$
loop