Latest web development tutorials

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
  • 대한 - (선택 사항) 변수에 식에 의해 반환 된 번들 각 항목에
  • 하자 - (선택 사항)
  • 여기서 - (선택 사항) 조건을 설정
  • 순서 - (선택 사항) 결과의 순서를 설정
  • 반환 - 결과의 규정 내용을 반환

식에 의해 반환 된 각 항목에 연결된 변수에 대한 설명. 문 반복합니다. FLWOR 식의 동일한 문에 대한 여러가있을 수 있습니다.

루프 문에 대한에 지정된 횟수를 들어, 키워드를 할 수 있습니다 :

for $x in (1 to 5)
return <test>{$x}</test>

결과 :

<test>1</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>

결과 :

<book>1. Everyday Italian</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>

결과 :

<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>

문을하자

문이 완료 변수 분포 될 수 있도록, 같은 표현을 반복하지 마십시오. 문이 반복 발생하지 않습니다 수 있습니다.

let $x := (1 to 5)
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

결과 :

<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>

문을 반환 :

반환 문장은 내용을 반환하도록 지정합니다.

for $x in doc("books.xml")/bookstore/book
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>