Учебники

XQuery — FLWOR

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.