XQuery Thêm các phần tử và thuộc tính
Tài liệu ví dụ XML
Chúng ta sẽ sử dụng tài liệu "books.xml" trong các ví dụ bên dưới (cùng tệp XML như trong các chương trước).
Xem tệp "books.xml" trong trình duyệt của bạn .
Thêm các phần tử và thuộc tính vào kết quả
Như chúng ta đã thấy trong chương trước, chúng ta có thể đưa các phần tử và thuộc tính từ tài liệu đầu vào ("books.xml) vào 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ẽ bao gồm cả phần tử tiêu đề và thuộc tính lang trong kết quả, như sau:
<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>
Biểu thức XQuery ở trên trả về các thành phần tiêu đề giống hệt như cách chúng được mô tả trong tài liệu đầu vào.
Bây giờ chúng tôi muốn thêm các phần tử và thuộc tính của riêng mình vào kết quả!
Thêm các phần tử và văn bản HTML
Bây giờ, chúng tôi muốn thêm một số phần tử HTML vào kết quả. Chúng tôi sẽ đưa kết quả vào danh sách HTML - cùng với một số văn bản:
<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>
Biểu thức XQuery ở trên sẽ tạo ra kết quả sau:
<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>
Thêm thuộc tính vào phần tử HTML
Tiếp theo, chúng tôi muốn sử dụng thuộc tính danh mục làm thuộc tính lớp 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>
Biểu thức XQuery ở trên sẽ 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>