XPath is een taal die we gebruiken om specifieke elementen of attributen te vinden in een XML bestand. Zoals je in de voorbije oefeningen al hebt gemerkt zijn XML bestanden nogal groot en niet zo makkelijk in een oogopslag om alle informatie uit te halen.
Laten we ons voorbeeldbestand nemen:
<boeken>
<boek genre="Non-Fiction">
<titel>Mythos</titel>
<auteur>Stephen Fry</auteur>
<jaar>2017</jaar>
</boek>
<boek genre="biography">
<titel>Scar Tissue</titel>
<auteur>Anthony Kiedis</auteur>
<jaar>2004</jaar>
</boek>
<boek genre="fantasy">
<titel>The Lost Metal</titel>
<auteur>Brandon Sanderson</auteur>
<jaar>2022</jaar>
</boek>
</boeken>
/
Dit selecteert het meest top level object. In de praktijk geeft dit dus het hele document terug.
/boeken
Dit zou het boeken element teruggeven. Wat dus ook het hele bestand is.
/boeken/boek/titel
Geef alle titels die vallen in de hiƫrarchie boeken -> boek.
//titel
Geef alle titels, eender waar in het document.
//boek/@genre
Geef alle genre attributen die gekoppeld zijn aan een boek element.
//boek[@genre='fantasy']
Geef alle boek elementen terug die in het genre fantasy vallen.
//boek/*
Geef alle subelementen van het boek element.
Hieronder vind je een xml bestand waarop we de XPath oefeningen gaan uitvoeren. Je kan je XPath valideren op deze online XPath evaluator.
<?xml version="1.0"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre fiction="0">
<maingenre>Computer</maingenre>
<subgenre>XML</subgenre>
</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre fiction="1">
<maingenre>Fantasy</maingenre>
<subgenre>Low Fantasy</subgenre>
</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book>
<book id="bk103">
<author>Corets, Eva</author>
<title>Maeve Ascendant</title>
<genre fiction="1">
<maingenre>Fantasy</maingenre>
<subgenre>Dystopian Fantasy</subgenre>
</genre>
<price>5.95</price>
<publish_date>2000-11-17</publish_date>
<description>After the collapse of a nanotechnology
society in England, the young survivors lay the
foundation for a new society.</description>
</book>
<book id="bk104">
<author>Corets, Eva</author>
<title>Oberon's Legacy</title>
<genre fiction="1">
<maingenre>Fantasy</maingenre>
<subgenre>Dystopian Fantasy</subgenre>
</genre>
<price>5.95</price>
<publish_date>2001-03-10</publish_date>
<description>In post-apocalypse England, the mysterious
agent known only as Oberon helps to create a new life
for the inhabitants of London. Sequel to Maeve
Ascendant.</description>
</book>
<book id="bk105">
<author>Corets, Eva</author>
<title>The Sundered Grail</title>
<genre fiction="1">
<maingenre>Fantasy</maingenre>
<subgenre>Dystopian Fantasy</subgenre>
</genre>
<price>5.95</price>
<publish_date>2001-09-10</publish_date>
<description>The two daughters of Maeve, half-sisters,
battle one another for control of England. Sequel to
Oberon's Legacy.</description>
</book>
<book id="bk106">
<author>Randall, Cynthia</author>
<title>Lover Birds</title>
<genre fiction="1">
<maingenre>Romance</maingenre>
</genre>
<price>4.95</price>
<publish_date>2000-09-02</publish_date>
<description>When Carla meets Paul at an ornithology
conference, tempers fly as feathers get ruffled.</description>
</book>
<book id="bk107">
<author>Thurman, Paula</author>
<title>Splish Splash</title>
<genre fiction="1">
<maingenre>Romance</maingenre>
</genre>
<price>4.95</price>
<publish_date>2000-11-02</publish_date>
<description>A deep sea diver finds true love twenty
thousand leagues beneath the sea.</description>
</book>
<book id="bk108">
<author>Knorr, Stefan</author>
<title>Creepy Crawlies</title>
<genre fiction="1">
<maingenre>Horror</maingenre>
<subgenre>Short Stories</subgenre>
</genre>
<price>4.95</price>
<publish_date>2000-12-06</publish_date>
<description>An anthology of horror stories about roaches,
centipedes, scorpions and other insects.</description>
</book>
<book id="bk109">
<author>Kress, Peter</author>
<title>Paradox Lost</title>
<genre fiction="1">
<maingenre>Science Fiction</maingenre>
</genre>
<price>6.95</price>
<publish_date>2000-11-02</publish_date>
<description>After an inadvertant trip through a Heisenberg
Uncertainty Device, James Salway discovers the problems
of being quantum.</description>
</book>
<book id="bk110">
<author>O'Brien, Tim</author>
<title>Microsoft .NET: The Programming Bible</title>
<genre fiction="0">
<maingenre>Computer</maingenre>
<subgenre>.NET</subgenre>
</genre>
<price>36.95</price>
<publish_date>2000-12-09</publish_date>
<description>Microsoft's .NET initiative is explored in
detail in this deep programmer's reference.</description>
</book>
<book id="bk111">
<author>O'Brien, Tim</author>
<title>MSXML3: A Comprehensive Guide</title>
<genre fiction="0">
<maingenre>Computer</maingenre>
<subgenre>XML</subgenre>
</genre>
<price>36.95</price>
<publish_date>2000-12-01</publish_date>
<description>The Microsoft MSXML3 parser is covered in
detail, with attention to XML DOM interfaces, XSLT processing,
SAX and more.</description>
</book>
<book id="bk112">
<author>Galos, Mike</author>
<title>Visual Studio 7: A Comprehensive Guide</title>
<genre fiction="0">
<maingenre>Computer</maingenre>
<subgenre>Visual Studio</subgenre>
</genre>
<price>49.95</price>
<publish_date>2001-04-16</publish_date>
<description>Microsoft Visual Studio 7 is explored in depth,
looking at how Visual Basic, Visual C++, C#, and ASP+ are
integrated into a comprehensive development
environment.</description>
</book>
</catalog>