(phixonline)--> include builtins/xml.e constant xml_txt = """ <inventory title="OmniCorp Store #45x10^3"> <section name="health"> <item upc="123456789" stock="12"> <name>Invisibility Cream</name> <price>14.50</price> <description>Makes you invisible</description> </item> <item upc="445322344" stock="18"> <name>Levitation Salve</name> <price>23.99</price> <description>Levitate yourself for up to 3 hours per application</description> </item> </section> <section name="food"> <item upc="485672034" stock="653"> <name>Blork and Freen Instameal</name> <price>4.95</price> <description>A tasty meal in a tablet; just add water</description> </item> <item upc="132957764" stock="44"> <name>Grob winglets</name> <price>3.56</price> <description>Tender winglets of Grob. Just add water</description> </item> </section> </inventory> """, -- or, of course, xml_txt = get_text("input.xml") xml = xml_parse(xml_txt) sequence sections = xml_get_nodes(xml[XML_CONTENTS],"section"), item1 = {}, prices = {}, names = {} for s=1 to length(sections) do sequence items = xml_get_nodes(sections[s],"item") if item1={} then item1 = items[1] end if for i=1 to length(items) do prices = append(prices,xml_get_nodes(items[i],"price")[1][XML_CONTENTS]) names = append(names,xml_get_nodes(items[i],"name")[1][XML_CONTENTS]) end for end for puts(1,"===item[1]===\n") sequence tmp = xml_new_doc(item1) puts(1,xml_sprint(tmp)) puts(1,"===prices===\n") pp(prices) puts(1,"===names===\n") pp(names,{pp_Maxlen,90})