XQuery FLWOR 표현식
FLWOR이란 무엇입니까?
FLWOR("꽃"으로 발음)은 "For, Let, Where, Order by, Return"의 약어입니다.
- For - 노드 시퀀스를 선택합니다.
- Let - 시퀀스를 변수에 바인딩
- Where - 노드 필터링
- 정렬 기준 - 노드를 정렬합니다.
- 반환 - 반환할 항목(모든 노드에 대해 한 번 평가됨)
XML 예제 문서
아래 예제에서 "books.xml" 문서를 사용할 것입니다(이전 장에서와 동일한 XML 파일).
FLWOR를 사용하여 "books.xml"에서 노드를 선택하는 방법
다음 경로 표현식을 보십시오.
doc("books.xml")/bookstore/book[price>30]/title
위의 식은 값이 30보다 큰 price 요소가 있는 bookstore 요소 아래에 있는 book 요소 아래의 모든 title 요소를 선택합니다.
다음 FLWOR 표현식은 위의 경로 표현식과 정확히 동일하게 선택합니다.
for $x in doc("books.xml")/bookstore/book
where $x/price>30
return $x/title
결과는 다음과 같습니다.
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>
FLWOR를 사용하면 결과를 정렬할 수 있습니다.
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
for 절 은 bookstore 요소 아래의 모든 book 요소를 $x라는 변수로 선택합니다.
where 절 은 값이 30보다 큰 price 요소가 있는 book 요소만 선택합니다.
order by 절은 정렬 순서를 정의합니다 . 제목 요소를 기준으로 정렬됩니다.
return 절은 무엇을 반환해야 하는지 지정합니다 . 여기에서 제목 요소를 반환합니다.
위의 XQuery 표현식의 결과는 다음과 같습니다.
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>