Menambah Element dan Atribut XQuery

Dokumen Instansi XML

Kami akan melanjutkan menggunakan dokumen "books.xml" di contoh berikut (yang sama seperti berkas XML yang digunakan di bab sebelumnya).

Lihat berkas "books.xml" di browser Anda

Menambahkan elemen dan atribut ke hasil

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

untuk $x dalam doc("books.xml")/bookstore/book/title
atur berdasarkan $x
kembalikan $x

Ekspresi XQuery di atas akan mengutip elemen title dan atribut lang 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>

Cara ekspresi XQuery mengembalikan elemen title sama seperti cara mereka digambarkan di dokumen masuk.

Sekarang kita akan menambahkan elemen dan atribut yang sendiri ke hasil!

Tambahkan elemen HTML dan teks

Sekarang, kita akan menambahkan elemen HTML ke hasil.

<html>
<body>
<h1>Bookstore</h1>
<ul>
{
untuk $x dalam doc("books.xml")/bookstore/book
atur berdasarkan $x/title
kembalikan <li>{data($x/title)}. Kategori: {data($x/@category)}</li>
}
</ul>
</body>
</html>

Ekspresi XQuery di atas akan menghasilkan hasil berikut:

<html>
<body>
<h1>Bookstore</h1>
<ul>
<li>Everyday Italian. Kategori: MINGGUK</li>
<li>Harry Potter. Kategori: ANAK</li>
<li>Learning XML. Kategori: WEB</li>
<li>XQuery Kick Start. Kategori: WEB</li>
</ul>
</body>
</html>

Tambahkan atribut ke elemen HTML

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

<html>
<body>
<h1>Bookstore</h1>
<ul>
{
untuk $x dalam doc("books.xml")/bookstore/book
atur berdasarkan $x/title
kembalikan <li class="{data($x/@category)}">{data($x/title)}</li>
}
</ul>
</body>
</html>

Ekspresi XQuery di atas dapat menghasilkan hasil berikut:

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