XQuery - format HTML
XQuery może być również łatwo użyty do przekształcenia dokumentu XML na stronę HTML. Spójrz na poniższy przykład, aby zrozumieć, jak XQuery to robi.
Przykład
Użyjemy tego samego pliku books.xml. W poniższym przykładzie XQuery wyodrębnia dane z books.xml i tworzy tabelę HTML zawierającą tytuły wszystkich książek wraz z ich cenami.
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>
Poniżej podano wyrażenie Xquery, które ma zostać wykonane na powyższym dokumencie XML.
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>
Wynik
<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>
Sprawdź wynik
Aby zweryfikować wynik, zamień zawartość books.xqy (podaną w rozdziale Konfiguracja środowiska ) powyższym wyrażeniem XQuery i uruchom program java XQueryTester.
Wyrażenia XQuery
Tutaj użyliśmy następujących wyrażeń XQuery -
data () do oszacowania wartości elementu tytułu, a
{}, aby powiedzieć procesorowi XQuery, aby traktował data () jako funkcję. Jeśli operator {} nie jest używany, to data () będzie traktowana jak zwykły tekst.