Menambahkan Elemen dan Atribut XQuery

Dokumen Contoh XML

Kami akan melanjutkan contoh dengan berkas "books.xml" di bawah ini (yang sama seperti berkas XML yang digunakan di bab sebelumnya).

Lihat berkas "books.xml" di browser Anda.

Tambahkan elemen dan atribut ke hasil

Seperti yang dilihat di bagian sebelumnya, kita dapat mengutip elemen dan atribut dari berkas masukan di dalam hasil:

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

Ekspresi XQuery di atas akan mengutip elemen title dan atribut lang di dalam hasil seperti ini:

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

Ekspresi XQuery di atas mengembalikan elemen title dengan cara yang sama seperti cara mereka dijelaskan di dokumen masukan.

Sekarang kita akan menambahkan elemen dan atribut sendiri ke hasil!

Tambahkan elemen HTML dan teks

Sekarang, kita akan menambahkan elemen HTML ke hasil. Kita akan menempatkan hasil di dalam daftar HTML:

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

Ekspresi XQuery di atas akan menghasilkan hasil di bawah ini:

<html>
<body>
<h1>Pustaka Buku</h1>
<ul>
<li>Setiap hari Italia. Kategori: COOKING</li>
<li>Harry Potter. Kategori: CHILDREN</li>
<li>Learning XML. Kategori: WEB</li>
<li>XQuery Kick Start. Kategori: WEB</li>
</ul>
</body>
</html>

Menambahkan Atribut ke Elemen HTML

Selanjutnya, kita akan menggunakan atribut category sebagai atribut class dalam daftar HTML:

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

Ekspresi XQuery di atas dapat menghasilkan hasil berikut:

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