XQuery elementtien ja ominaisuuksien lisääminen

XML-esimerkkiasiakirja

Käytämme alla olevassa esimerkissä tätä "books.xml"-asiakirjaa (ja yllä olevassa luvussa käytettyä XML-tiedostoa).

Tarkastele "books.xml"-tiedostoa selaimesi kautta.

Lisää elementtejä ja ominaisuuksia tulokseen

Kuten edellisessä luvussa nähtiin, voimme viitata tuloksessa elementteihin ja ominaisuuksiin, jotka ovat tulleet syötteestä:

kaikki $x in doc("books.xml")/bookstore/book/title
järjestä $x
palauta $x

Yllä oleva XQuery-lause viittaa title-elementtiin ja lang-ominaisuuteen tällä tavalla:

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

Yllä oleva XQuery-lause palauttaa title-elementin samalla tavalla kuin se on kuvattu alkuperäisessä dokumentissa.

Nyt meidän täytyy lisätä omia elementtejämme ja ominaisuuksiamme tulokseen!

Lisää HTML-elementtejä ja tekstejä

Nyt meidän täytyy lisätä tulokseen HTML-elementtejä. Asetamme tuloksen HTML-listaan:

<html>
<body>
<h1>Bookstore</h1>
<ul>
{
kaikki $x in doc("books.xml")/bookstore/book
järjestä $x/title
palauta <li>{data($x/title)}. Category: {data($x/@category)}</li>
}
</ul>
</body>
</html>

Yllä oleva XQuery-lause luo seuraavan tuloksen:

<html>
<body>
<h1>Bookstore</h1>
<ul>
<li>Everyday Italian. Category: COOKING</li>
<li>Harry Potter. Category: CHILDREN</li>
<li>Learning XML. Category: WEB</li>
<li>XQuery Kick Start. Category: WEB</li>
</ul>
</body>
</html>

Lisää HTML-elementille ominaisuuksia

Seuraavaksi meidän täytyy käyttää category-ominaisuutta HTML-listan class-ominaisuutena:

<html>
<body>
<h1>Bookstore</h1>
<ul>
{
kaikki $x in doc("books.xml")/bookstore/book
järjestä $x/title
palauta <li class="{data($x/@category)}">{data($x/title)}</li>
}
</ul>
</body>
</html>

Yllä oleva XQuery-lause generoi seuraavan tuloksen:

<html>
<body>
<h1>Bookstore</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>