XQuery Elementen en Eigenschappen Toevoegen

XML voorbeelddocument

We gebruiken in het volgende voorbeeld het "books.xml"-document (en het XML-bestand dat in het vorige hoofdstuk is gebruikt).

Bekijk "books.xml"-bestand in uw browser.

Voeg elementen en eigenschappen toe aan het resultaat

Net zoals gezien in het vorige hoofdstuk, kunnen we elementen en eigenschappen uit het invoerbestand in het resultaat gebruiken:

for $x in doc("books.xml")/bookstore/book/title
order by $x
return $x

De bovenstaande XQuery-expressie verwijst naar de title-elementen en de lang-eigenschap in het resultaat, zoals hieronder weergegeven:

<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>

De manier waarop de bovenstaande XQuery-expressie de title-elementen retourneert, is hetzelfde als hoe ze beschreven zijn in het invoerdocument.

Nu moeten we onze eigen elementen en eigenschappen toevoegen aan het resultaat!

Voeg HTML-elementen en tekst toe

Nu moeten we HTML-elementen toevoegen aan het resultaat. We plaatsen het resultaat in een HTML-lijst:

<html>
<body>
<h1>Boekwinkel</h1>
<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return <li>{data($x/title)}. Categorie: {data($x/@category)}</li>
}
</ul>
</body>
</html>

De bovenstaande XQuery-expressie genereert het volgende resultaat:

<html>
<body>
<h1>Boekwinkel</h1>
<ul>
<li>Dagelijks Italiaans. Categorie: Kookkunst</li>
<li>Harry Potter. Categorie: KINDEREN</li>
<li>Learning XML. Categorie: WEB</li>
<li>XQuery Kick Start. Categorie: WEB</li>
</ul>
</body>
</html>

Voeg eigenschappen toe aan HTML-elementen

Daarna gaan we de category-eigenschap gebruiken als de class-eigenschap van de HTML-lijst:

<html>
<body>
<h1>Boekwinkel</h1>
<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return <li class="{data($x/@category)}">{data($x/title)}</li>
}
</ul>
</body>
</html>

De bovenstaande XQuery expressie kan het volgende resultaat genereren:

<html>
<body>
<h1>Boekwinkel</h1>
<ul>
<li class="COOKING">Everyday Italian</li>
<li class="CHILDREN">Harry Potter</li>
<li class="WEB">Learning XML</li>
<li class="WEB">XQuery Kick Start</li>
</ul>
</body>
</html>