XQuery - Định dạng HTML

XQuery cũng có thể dễ dàng được sử dụng để chuyển đổi một tài liệu XML thành một trang HTML. Hãy xem ví dụ sau để hiểu cách XQuery thực hiện.

Thí dụ

Chúng tôi sẽ sử dụng cùng một tệp books.xml. Ví dụ sau sử dụng dữ liệu trích xuất XQuery từ books.xml và tạo một bảng HTML chứa tên sách của tất cả các cuốn sách cùng với giá tương ứng của chúng.

books.xml

<?xml version="1.0" encoding="UTF-8"?>
<books>
   
   <book category="JAVA">
      <title lang="en">Learn Java in 24 Hours</title>
      <author>Robert</author>
      <year>2005</year>
      <price>30.00</price>
   </book>
   
   <book category="DOTNET">
      <title lang="en">Learn .Net in 24 hours</title>
      <author>Peter</author>
      <year>2011</year>
      <price>70.50</price>
   </book>
   
   <book category="XML">
      <title lang="en">Learn XQuery in 24 hours</title>
      <author>Robert</author>
      <author>Peter</author> 
      <year>2013</year>
      <price>50.00</price>
   </book>
   
   <book category="XML">
      <title lang="en">Learn XPath in 24 hours</title>
      <author>Jay Ban</author>
      <year>2010</year>
      <price>16.50</price>
   </book>
   
</books>

Dưới đây là biểu thức Xquery sẽ được thực thi trên tài liệu XML ở trên.

books.xqy

let $books := (doc("books.xml")/books/book) return <table><tr><th>Title</th><th>Price</th></tr> { for $x in $books order by $x/price
   return <tr><td>{data($x/title)}</td><td>{data($x/price)}</td></tr>
}
</table>
</results>

Kết quả

<table>
   <tr>
      <th>Title</th>
      <th>Price</th>
   </tr>
   <tr>
      <td>Learn XPath in 24 hours</td>
      <td>16.50</td>
   </tr>   
   <tr>
      <td>Learn Java in 24 Hours</td>
      <td>30.00</td>
   </tr>
   <tr>
      <td>Learn XQuery in 24 hours</td>
      <td>50.00</td>
   </tr>   
   <tr>
      <td>Learn .Net in 24 hours</td>
      <td>70.50</td>
   </tr>
</table>

Xác minh kết quả

Để xác minh kết quả, hãy thay thế nội dung của books.xqy (được đưa ra trong chương Thiết lập môi trường ) bằng biểu thức XQuery ở trên và thực thi chương trình java XQueryTester.

Biểu thức XQuery

Ở đây chúng tôi đã sử dụng các biểu thức XQuery sau:

  • data () để đánh giá giá trị của phần tử tiêu đề và

  • toán tử {} để yêu cầu bộ xử lý XQuery coi data () là một hàm. Nếu toán tử {} không được sử dụng, thì dữ liệu () sẽ được coi là văn bản bình thường.