Cách thêm phần tử và thuộc tính của XQuery

Tệp văn bản XML

Chúng ta sẽ tiếp tục sử dụng tệp "books.xml" trong ví dụ sau (cùng với tệp XML được sử dụng trong các phần trước).

Xem tệp "books.xml" trong trình duyệt của bạn.

Thêm yếu tố và thuộc tính vào kết quả

Như đã thấy trong phần trước, chúng ta có thể trích dẫn yếu tố và thuộc tính từ tệp đầu vào trong kết quả:

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

Biểu thức XQuery trên sẽ trích dẫn yếu tố title và thuộc tính lang trong kết quả, như sau:

<title lang="en">Mỗi ngày Ý</title>
<title lang="en">Harry Potter</title>
<title lang="en">Học XML</title>
<title lang="en">XQuery Kick Start</title>

Biểu thức XQuery trên trả về cách title yếu tố và chúng được mô tả trong tài liệu đầu vào một cách tương tự.

Hiện tại chúng ta sẽ thêm các yếu tố và thuộc tính của riêng chúng ta vào kết quả!

Thêm yếu tố HTML và văn bản

Hiện tại, chúng ta sẽ thêm các yếu tố HTML vào kết quả. Chúng ta sẽ đặt kết quả vào một danh sách HTML:

<html>
<body>
<h1>Bookstore</h1>
<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return <li>{data($x/title)}. Danh mục: {data($x/@category)}</li>
}
</ul>
</body>
</html>

XQuery biểu thức trên sẽ tạo ra kết quả sau đây:

<html>
<body>
<h1>Bookstore</h1>
<ul>
<li>Mỗi ngày Ý. Danh mục: NÁNG LỰC NÁNG NGHỆ</li>
<li>Harry Potter. Loại: CHILDREN</li>
<li>Learning XML. Loại: WEB</li>
<li>XQuery Kick Start. Loại: WEB</li>
</ul>
</body>
</html>

Thêm thuộc tính vào phần tử HTML

Tiếp theo, chúng ta sẽ sử dụng thuộc tính category như thuộc tính class trong danh sách 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>

Công thức biểu đạt XQuery trên có thể tạo ra kết quả sau:

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