XQuery를 선택 및 필터링
XML 인스턴스 문서
다음의 예에서 우리는 (위에서 사용되는 동일한 XML 파일과 섹션)이 "Books.xml을"문서를 계속 사용합니다.
브라우저에서 "Books.xml을"파일을 참조하십시오 .
선택한 요소를 필터링
이전 장에서 알 수있는 바와 같이, 우리는 선택하고 필터 소자하기 위해 FLWOR 식 또는 경로 식을 사용합니다.
다음 FLWOR 식을 고려 :
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
where $x/price>30
order by $x/title
return $x/title
- 대한 - (선택 사항) 변수에 식에 의해 반환 된 번들 각 항목에
- 하자 - (선택 사항)
- 여기서 - (선택 사항) 조건을 설정
- 순서 - (선택 사항) 결과의 순서를 설정
- 반환 - 결과의 규정 내용을 반환
문
식에 의해 반환 된 각 항목에 연결된 변수에 대한 설명. 문 반복합니다. FLWOR 식의 동일한 문에 대한 여러가있을 수 있습니다.
루프 문에 대한에 지정된 횟수를 들어, 키워드를 할 수 있습니다 :
for $x in (1 to 5)
return <test>{$x}</test>
return <test>{$x}</test>
결과 :
<test>1</test>
<test>2</test>
<test>3</test>
<test>4</test>
<test>5</test>
<test>2</test>
<test>3</test>
<test>4</test>
<test>5</test>
키워드의 반복을 계산하는 데 사용할 수 있습니다 :
for $x at $i in doc("books.xml")/bookstore/book/title
return <book>{$i}. {data($x)}</book>
return <book>{$i}. {data($x)}</book>
결과 :
<book>1. Everyday Italian</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>
문에 또한 표현에 하나 이상의 수 있습니다. 표현의 각을 분리하는 쉼표를 사용하십시오 :
for $x in (10,20), $y in (100,200)
return <test>x={$x} and y={$y}</test>
return <test>x={$x} and y={$y}</test>
결과 :
<test>x=10 and y=100</test>
<test>x=10 and y=200</test>
<test>x=20 and y=100</test>
<test>x=20 and y=200</test>
<test>x=10 and y=200</test>
<test>x=20 and y=100</test>
<test>x=20 and y=200</test>
문을하자
문이 완료 변수 분포 될 수 있도록, 같은 표현을 반복하지 마십시오. 문이 반복 발생하지 않습니다 수 있습니다.
let $x := (1 to 5)
return <test>{$x}</test>
return <test>{$x}</test>
결과 :
<test>1 2 3 4 5</test>
여기서 문
문은 하나 이상의 조건 (기준)의 결과를 설정하는 데 사용된다.
where $x/price>30 and $x/price<100
문에 의해 순서
문에 의해 순서는 소정의 순서로 결과를 정렬합니다. 여기서 우리는 카테고리와 제목에 따라 결과를 정렬하려면 :
for $x in doc("books.xml")/bookstore/book
order by $x/@category, $x/title
return $x/title
order by $x/@category, $x/title
return $x/title
결과 :
<title lang="en">Harry Potter</title>
<title lang="en">Everyday Italian</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Everyday Italian</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>
문을 반환 :
반환 문장은 내용을 반환하도록 지정합니다.
for $x in doc("books.xml")/bookstore/book
return $x/title
return $x/title
결과 :
<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>
<title lang="en">Harry Potter</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>