XQuery Přidávání prvků a atributů
Vzorový dokument XML
V příkladech níže použijeme dokument „books.xml“ (stejný soubor XML jako v předchozích kapitolách).
Zobrazte soubor „books.xml“ ve svém prohlížeči .
Přidání prvků a atributů k výsledku
Jak jsme viděli v předchozí kapitole, do výsledku můžeme zahrnout prvky a atributy ze vstupního dokumentu ("books.xml):
for $x in doc("books.xml")/bookstore/book/title
order by $x
return $x
Výše uvedený výraz XQuery bude ve výsledku obsahovat prvek title i atribut lang, například takto:
<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>
Výše uvedený výraz XQuery vrací prvky názvu přesně stejným způsobem, jak jsou popsány ve vstupním dokumentu.
Nyní chceme k výsledku přidat vlastní prvky a atributy!
Přidejte prvky HTML a text
Nyní chceme do výsledku přidat nějaké HTML prvky. Výsledek vložíme do HTML seznamu – spolu s nějakým textem:
<html>
<body>
<h1>Bookstore</h1>
<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return <li>{data($x/title)}. Category: {data($x/@category)}</li>
}
</ul>
</body>
</html>
Výše uvedený výraz XQuery vygeneruje následující výsledek:
<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>
Přidejte atributy do prvků HTML
Dále chceme použít atribut category jako atribut třídy v seznamu HTML:
<html>
<body>
<h1>Bookstore</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>
Výše uvedený výraz XQuery vygeneruje následující výsledek:
<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>