Perform the following three XPath queries on the XML Document below:

 //item[1]: Retrieve the first "item" element 
 //price/text(): Perform an action on each "price" element (print it out)
 //name: Get an array of all the "name" elements
XML Document:

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

import lang::xml::DOM;
import Prelude;
 
public void get_first_item(loc a){
	D = parseXMLDOM(readFile(a));
	top-down-break visit(D){
		case E:element(_,"item",_): return println(xmlPretty(E));
	};
}
 
public void print_prices(loc a){
	D = parseXMLDOM(readFile(a));
	for(/element(_,"price",[charData(/str p)]) := D)
		println(p);
}
 
public list[str] get_names(loc a){
	D = parseXMLDOM(readFile(a));
	L = [];
	for(/element(_,"name",[charData(/str n)]) := D)
		L += n;
	return L;
}