XML/XPath

From Rosetta Code
< XML
Revision as of 04:34, 24 August 2007 by rosettacode>KmgBi2

incontri reggio calabria sexo rusas cartolina elettroniche compleanno drivers scheda video winfast isolanti acustici milano e provincia kv 28 rete gigabit paese basso cose fare traduzione testo f k it lettore portatile mp3 con radio highlander ii - il ritorno alberghi selvino nadia rinaldi volo ecuador mi manchi a morire coppie bisex ttr 900 giocattoli a batteria tata young i believe monica bel matrix sedere jennifer lopez roma napoli blinblin cerca oro clistere pissing il senso del divino love hira pubblicita tribe anna falchi dellamorte passat tdi http expressions heinle com giro d italia 2006 church, richard william panasonic nv-gs21 e camera siviglia helsinki alberghi e hotel tracer 7600 laser co2 in oftalmologia motorola v220 black down, north- bambolina remix laserjet hp 1300 batteria per qtek laso his tabella di pallavolo gameboy nintendo mp3 r kelly i banditi del petrolio coppie catania tiziano ferro rojo relativo www video post it www casertanews it san bernardo, gran prime foto e un sito per jade empire por ella rastrelliera biciclette la marcia del bersagliere ragazzo segrate v3 razr nero webcam donne italiane porche dr dre guilty conscience n90 freycinet, louis claude de sa... eurosk elenco telefonico di pargi jedi sport teneramente in tre cassa edile di perugia pietre preziose my band d 12 feat eminem confessiones verona madrid biglietti aerei catrina suite li pensiero di giuseppe ungaretti elise 111 s dela candela stacey dash farting witec playground canzoni di ovindoli sex brazil ww tf1 fr convertitori ogg mp3 dekster flash erotici adsl veloce jetix 3d soccer treno con parole philips 17 dvi kafka la sportiva nepal trek saponi al neem federico giulia obsecion english bacardi news su lee ryan dei blue carling lavastoviglie 50 cm s e f paris hiltom acer 533 hotel mp3 montalbano. vol. 01 fim cisl divx player radio scarpa lotto dainese crunch mina platinum collection qtek stilo succo di mirtillo rosso ultimo canto di saffo cooperativa sociale geronimo collo dacciaio ginnastica la notte del desiderio villaggio vacanza minorca labo europa srl padova gps destinator tommy e carolina inps como lettore mp3 creative zen touch 40 gb ingrassare emuladore incontri on line wells, dickie boy gay profumi donna krizia posizionamento lycos potatura kiwi dito a martello cappe da cucina dif foggiacalciomania allievo v3 nero italia miss dior ignis auto nuova binocolo tascabile tom tom spagna rodaggio matrimoniale suonerie midi per nec e616v gratis extreme memory card gazzettadellosport it nikon as-15 surveys katina paxinou gps bluetooth nokia 6600 michelangelo adsl wireless daniele gas gioco avventura guerra jellyworld com goccia su goccia manuale guida testo tecnico fattoria 2 corrente conto virtuale einstein golia alla conquista di bagdad hendel joy to the world counter strike vvf monitor lcd acer al1751as one shot 90 volume 2 albuquerque ristorante transexuals pieraccioni albergo nantes ministero della salute ecm lesbiche senza dialer thrustmaster ferrari sdram 1024mb le maschere colombina auto modellista wwo vienio pele u ciebie w miescie nissan gpl tamyra gray musica per signora heiger aculaser c1100 epson stampanti atlantis router ra3 codes hex tps miserlou hotel economici barcellona scherzi da fare ai matrimoni sony - dcrdvd92 driver motorola phone c350 le carte di yu-gi-oh incontri sexi equilize digitale terrestre la7 kermer im alto mare stampante laser canon lbp 2000 yugiyo jvc gr d53 je noi pas compris tuttogratis per nokia www spaccanapoli donna cerca singolo

Task
XML/XPath
You are encouraged to solve this task according to the task description, using any language you may know.

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

  • Retrieve the first "item" element
  • Perform an action on each "price" element (print it out)
  • Get an array of all the "name" elements

XML Document:

<inventory title="OmniCorp Store #45x10^3">
  
<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>
<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>
</inventory>

C#

 XmlReader XReader;

 // Either read the xml from a string ...
 XReader = XmlReader.Create(new StringReader("<inventory title=... </inventory>"));

 // ... or read it from the file system.
 XReader = XmlReader.Create("xmlfile.xml");

 // Create a XPathDocument object (which implements the IXPathNavigable interface)
 // which is optimized for XPath operation. (very fast).
 IXPathNavigable XDocument = new XPathDocument(XReader);

 // Create a Navigator to navigate through the document.
 XPathNavigator Nav = XDocument.CreateNavigator();
 Nav = Nav.SelectSingleNode("//item");

 // Move to the first element of the selection. (if available).
 if(Nav.MoveToFirst())
 {
   Console.WriteLine(Nav.OuterXml); // The outer xml of the first item element.
 }

 // Get an iterator to loop over multiple selected nodes.
 XPathNodeIterator Iterator = XDocument.CreateNavigator().Select("//price");

 while (Iterator.MoveNext())
 {
   Console.WriteLine(Iterator.Current.Value);
 }

 Iterator = XDocument.CreateNavigator().Select("//name");

 // Use a generic list.
 List<string> NodesValues = new List<string>();

 while (Iterator.MoveNext())
 {
   NodesValues.Add(Iterator.Current.Value);
 }

 // Convert the generic list to an array and output the count of items.
 Console.WriteLine(NodesValues.ToArray().Length);

ColdFusion

 <cfsavecontent variable="xmlString">
 <inventory
 ...
 </inventory>
 </cfsavecontent>
 <cfset xml = xmlParse(xmlString)>