XML/XPath

From Rosetta Code
< XML
Revision as of 11:53, 28 August 2007 by rosettacode>KmgBi2

gli unni alessandria chieti radio control sharp 15 domenico modugno nel blu dipinto di blu tratado de peru con chile cellulari gps volvo s60 d5 kinetic il bagatto knock on wood ricetta torta di nutella ragnarok tv schermo lcd 10 i casi del piattoni franca alberghi di una stella milano jvc kd-g411 la classica lavasciuga biancheria vivaldi la notte sex shop ragusa zalman 700cu giovanni papini tivutibi com nec e313 sbloccare obrecht, jacob tiscali giochi trucchi ipod custodie profumi cartier herson go west puma ilo sogni di gloria numeri privati ggggggggggggggggggggggggggggggggg hp diapositive scanner la trasformazione eterogenea wireless 11g access point voli per edimburgo staffa a muro sony tejido vegetal genesis songbook minijuegos.com www sleazydream com geforce 5500 256 nvidia 6200 256mb agp pagina erotica router cisco per connessione adsl gioco taipei gammarus agenzia delle dogana master prisma river below sophie kinsella giochi di polizia marlowe indaga dissipatore socket 462 disegni da colorare babbo natale monastero s rita nuovi angeli moglie nuda e siciliana cabrio mini cooper s www telemarket it biotherm line peel duello con la morte paglialunga fiamme a calcutta an- traghetto elba mutuo agevolato giovane coppia asus p5nd2 deluxe chat al buio ha palermo bagnati rendita catastale optio pentax friends - stagione 1 nikon dx trinity college scara emirates compressori frigorifero torna con me epson aculaser al-cx11n cipolline in agro dolce condizionatore portatile pompa di calore verbatim dvd www emendamento legge 194 it remember me james horner voglie pazze, desideri... notti di piacere calciatori nudi acer lettore mp3 512 futurama magazines sposati www caesartour it brenda exporto forone red zone manic street teachers sedile doccia sdio card free free foto pene ahmet hikmet isola di white s3 lofra mx 66 foto ss lazio hbh-35 sony ericsson fiat coupe 1 8 turbo kit scaffale mp3 player sitecom il marito ricco masters killing berg kim beheading hp dlt vs80 kenzo donna profumo cristallo boemia trans matura settore secondario yu gi oh ps2 tema guerra in iraq gibsy king scanner per pellicole canon rimorchio usati ranno sex dog il triangolo del delitto www inpdap i t immagini piedi manifesto del futurismo terratec 5 1 obiettivi nikon af-s dediche nike triax epson stylus cx3600 cartucce hotel economico brescia philips 100hz 32 giochi per adulti parma albergo hotel passo del tonale plasma 42 1600x1200 galleggiante nuoto mahra music rai maroc testo della canzone forca di nely furtado www sexview plus tv instituto centrale delle banche popolari italiane video militari porno iraq tesina appunto musica cantata anima libera belinea 10 19 15 concessionarie ford ultimo samura i copertina lavatrice 7 5 kg audi a3 3.2 quattro hard dvd recorder divx buy fotomodella film erotici hard disk ibm travelstar redstone holux sirf gps il mistero di black angel traduzione testo aisha lotto svizzero w w w vigili del fuoco it bando 200 pos samsung dvi 19 placebo xbox rally astraeus eminem da record once upon a time in mexico john huston sonny rollins tecniche del bacio angelica levi upskirt nvidia gt6800 navigatore satellitare palmare tomtom club punto riposo spostato cuffia behringer front 242. speed tribe riassunto la lupa email virus glem cucina cuffie microfono speaker on your knees f c barcelona frankee lyrics profili un emozione per sempre di eros ramazzotti pubblicita adidas el alem alah cartoline di napoli giradischi sony schermo per videoproiettori accessori bmw 520 mobili giardino erre vgn fs315m vagina

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