XQuery 요소와 속성 추가

XML 예제 문서

아래 예제에서 이 "books.xml" 문서를 계속 사용하겠습니다(위 장에서 사용한 XML 파일과 같습니다)。

브라우저에서 "books.xml" 파일을 확인하세요

결과에 요소와 속성을 추가합니다

앞에서 본 것처럼, 결과에서 입력 파일의 요소와 속성을 참조할 수 있습니다:

for $x in doc("books.xml")/bookstore/book/title
order by $x
return $x

위의 XQuery 표현식은 결과에서 title 요소와 lang 속성을 이렇게 참조합니다:

<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>

위의 XQuery 표현식은 title 요소를 반환하는 방식과 그것이 입력 문서에서 설명된 방식이 동일합니다。

지금, 우리는 결과에 우리의 요소와 속성을 추가하려 합니다!

HTML 요소와 텍스트 추가

지금, 우리는 결과에 HTML 요소를 추가하려 합니다. 우리는 결과를 HTML 목록에 넣을 것입니다:

<html>
<body>
<h1>Bookstore</h1>
<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return <li>{data($x/title)}. Category: {data($x/@category)}</li>
}
</ul>
</body>
</html>

위의 XQuery 표현식은 다음과 같은 결과를 생성합니다:

<html>
<body>
<h1>Bookstore</h1>
<ul>
<li>Everyday Italian. Category: COOKING</li>
<li>Harry Potter. Category: CHILDREN</li>
<li>Learning XML. Category: WEB</li>
<li>XQuery Kick Start. Category: WEB</li>
</ul>
</body>
</html>

HTML 요소에 속성 추가

다음으로, 우리는 category 속성을 HTML 목록의 class 속성으로 사용하려 합니다:

<html>
<body>
<h1>Bookstore</h1>
<ul>
{
for $x in doc("books.xml")/bookstore/book
order by $x/title
return <li class="{data($x/@category)}">{data($x/title)}</li>
}
</ul>
</body>
</html>

위의 XQuery 표현식은 다음과 같은 결과를 생성할 수 있습니다:

<html>
<body>
<h1>Bookstore</h1>
<ul>
<li class="COOKING">Everyday Italian</li>
<li class="CHILDREN">Harry Potter</li>
<li class="WEB">Learning XML</li>
<li class="WEB">XQuery Kick Start</li>
</ul>
</body>
</html>