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>

/*REXX program to parse various queries on an XML document  (from a file).    */
iFID='XPATH.XML'                       /*name of the input  XML  file (doc).  */
$=                                     /*string will contain the file's text. */
     do j=1  while  lines(iFID)\==0    /*read the entire file into a string.  */
     $=$ linein(iFID)                  /*append the line to the  $  string.   */
     end   /*j*/
                                       /* [↓]  show 1st  ITEM  in the document*/
parse var $  '<item '  item  "</item>"
say center('first item:',length(space(item)),'─')     /*display a nice header.*/
say space(item)
                                       /* [↓]  show all PRICES in the document*/
prices=                                /*nullify the list and add/append to it*/
$$=$                                   /*start with a fresh copy of document. */
     do  until $$=''                   /* [↓]  keep parsing string until done.*/
     parse var $$  '<price>'   price   '</price>' $$
     prices=prices price               /*add/append the price to the list.    */
     end   /*until*/
say
say center('prices:',length(space(prices)),'─')       /*display a nice header.*/
say space(prices)
                                       /* [↓]  show all  NAMES in the document*/
names.=                                /*nullify the list and add/append to it*/
L=length(' names: ')                   /*maximum length of any one list name. */
$$=$                                   /*start with a fresh copy of document. */
     do #=1  until $$=''               /* [↓]  keep parsing string until done.*/
     parse var $$  '<name>'   names.#   '</name>'   $$
     L=max(L,length(names.#))          /*L:  is used to find the widest name. */
     end   /*#*/
 
names.0=#-1;                  say      /*adjust the number of names (DO loop).*/
say center('names:',L,'─')             /*display a nicely formatted header.   */
     do k=1  for names.0               /*display all the names in the list.   */
     say names.k                       /*display a name from the  NAMES  list.*/
     end   /*k*/
                                       /*stick a fork in it,  we're all done. */