FLWOR — это аббревиатура, обозначающая «За, Позвольте, Где, Сортировать, Вернуть». В следующем списке показано, что они учитывают в выражении FLWOR —
-
F — For — Выбирает коллекцию всех узлов.
-
L — Let — Помещает результат в переменную XQuery.
-
W — Где — Выбирает узлы, указанные условием.
-
O — Упорядочить по — Упорядочивает узлы, указанные в соответствии с критериями.
-
R — Return — возвращает окончательный результат.
F — For — Выбирает коллекцию всех узлов.
L — Let — Помещает результат в переменную XQuery.
W — Где — Выбирает узлы, указанные условием.
O — Упорядочить по — Упорядочивает узлы, указанные в соответствии с критериями.
R — Return — возвращает окончательный результат.
пример
Ниже приведен пример XML-документа, который содержит информацию о коллекции книг. Мы будем использовать выражение FLWOR для получения названий тех книг, цена которых превышает 30.
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>
Следующий документ Xquery содержит выражение запроса, которое будет выполнено в приведенном выше XML-документе.
books.xqy
let $books := (doc("books.xml")/books/book) return <results> { for $x in $books where $x/price>30 order by $x/price return $x/title } </results>
Результат
<title lang="en">Learn XQuery in 24 hours</title> <title lang="en">Learn .Net in 24 hours</title>
Проверить результат
Чтобы проверить результат, замените содержимое файла books.xqy (приведенного в главе « Настройка среды» ) приведенным выше выражением XQuery и выполните Java-программу XQueryTester.