Menambahkan Elemen dan Atribut XQuery

Dokumen Instan XML

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

Lihat berkas "books.xml" di browser anda.

Tambahkan 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 di doc("books.xml")/bookstore/book/title
atur urutan $x
kembalikan $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>

Cara kembalikan ekspresi XQuery di atas untuk elemen title sama seperti cara mereka digambarkan di dokumen masukan.

Sekarang kita akan menambahkan elemen dan atribut yang kita 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>Bookstore</h1>
<ul>
{
untuk $x dalam doc("books.xml")/bookstore/book
atur urutan $x/title
kembalikan <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>Bookstore</h1>
<ul>
<li>Buat Nasi Harian. 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>

Tambahkan atribut ke elemen HTML

Berikutnya, 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 urutan $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>