Wyrażenia XQuery FLWOR
Co to jest FLWOR?
FLWOR (wymawiane „kwiat”) to akronim od „For, Let, Where, Order by, Return”.
- For - wybiera sekwencję węzłów
- Let - wiąże sekwencję ze zmienną
- Gdzie - filtruje węzły
- Sortuj według - sortuje węzły
- Return - co zwrócić (jest oceniany raz dla każdego węzła)
Przykładowy dokument XML
W poniższych przykładach użyjemy dokumentu „books.xml” (ten sam plik XML, co w poprzednim rozdziale).
Wyświetl plik „books.xml” w przeglądarce .
Jak wybrać węzły z „books.xml” za pomocą FLWOR
Spójrz na następujące wyrażenie ścieżki:
doc("books.xml")/bookstore/book[price>30]/title
Powyższe wyrażenie wybierze wszystkie elementy tytułu znajdujące się pod elementami książki, które znajdują się pod elementem księgarni, które mają element ceny o wartości większej niż 30.
Następujące wyrażenie FLWOR wybierze dokładnie to samo, co powyższe wyrażenie ścieżki:
for $x in doc("books.xml")/bookstore/book
where $x/price>30
return $x/title
Rezultatem będzie:
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>
Z FLWOR możesz sortować wynik:
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
Klauzula for wybiera wszystkie elementy książki znajdujące się pod elementem księgarni do zmiennej o nazwie $x.
Klauzula where wybiera tylko elementy księgi z elementem ceny o wartości większej niż 30.
Klauzula order by definiuje porządek sortowania. Zostanie posortowany według elementu tytułu.
Klauzula return określa, co powinno zostać zwrócone. Tutaj zwraca elementy tytułu.
Wynikiem powyższego wyrażenia XQuery będzie:
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>