XQuery - HTML Biçimi
XQuery, bir XML belgesini bir HTML sayfasına dönüştürmek için de kolayca kullanılabilir. XQuery'nin bunu nasıl yaptığını anlamak için aşağıdaki örneğe bir göz atın.
Misal
Aynı books.xml dosyasını kullanacağız. Aşağıdaki örnek, XQuery'nin books.xml'den veri ayıklamasını kullanır ve ilgili fiyatları ile birlikte tüm kitapların başlıklarını içeren bir HTML tablosu oluşturur.
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>
Aşağıda, yukarıdaki XML belgesinde çalıştırılacak Xquery ifadesi verilmiştir.
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>
Sonuç
<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>
Sonucu Doğrula
Sonucu doğrulamak için, books.xqy'nin içeriğini ( Ortam Kurulumu bölümünde verilmiştir) yukarıdaki XQuery ifadesiyle değiştirin ve XQueryTester java programını çalıştırın.
XQuery İfadeleri
Burada aşağıdaki XQuery ifadelerini kullandık -
title öğesinin değerini değerlendirmek için data () işlevi ve
{} operatörü, XQuery işlemcisine verileri () bir işlev olarak kabul etmesini söyler. {} Operatörü kullanılmazsa, data () normal metin olarak değerlendirilecektir.