RosettaCodeData/Task/XML-Input/Phix/xml-input.phix

28 lines
791 B
Plaintext

include builtins/xml.e
constant xml = """
<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>
"""
sequence x = xml_parse(xml)
procedure traverse(sequence x)
if x[XML_TAGNAME]="Student" then
?xml_get_attribute(x,"Name")
else
x = x[XML_CONTENTS]
if not string(x) then
for i=1 to length(x) do
traverse(x[i])
end for
end if
end if
end procedure
traverse(x[XML_CONTENTS])