Pagdaragdag ng Elemento at Atryibo sa XQuery

Mga halimbawa ng XML document

Magtutuloy tayo sa mga halimbawa sa ibabaw ng "books.xml" document (katulad ng XML file na ginamit sa nakaraang mga seksyon).

Tingnan ang "books.xml" file sa iyong browser.

Idagdag ang element at attribute sa resulta

Tulad ng nakita natin sa nakaraang seksyon, maaari naming magamit ang mga element at attribute mula sa input file sa resulta:

mag-isa $x sa doc("books.xml")/bookstore/book/title
ayusin sa pamamagitan ng $x
ibabalik $x

Ang XQuery ekspresyon na ito ay magpapakita ng title element at lang attribute sa resulta, tulad nang ito:

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

Ang paraan kung paano binabalik ng XQuery ekspresyon ang title element ay katulad ng kanilang paglalarawan sa input document.

Ngayon, magagamit namin ang aming sariling element at attribute upang idagdag sa resulta!

Idagdag ang HTML element at teksto

Ngayon, magagamit namin ang HTML element upang idagdag sa resulta. Maglalagay namin ang resulta sa isang HTML listahan:

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

Ang XQuery ekspresyon na ito ay magbibigay ng sumusunod na resulta:

<html>
<body>
<h1>Bookstore</h1>
<ul>
<li>Bawat araw na Italyano. Kategorya: COOKING</li>
<li>Harry Potter. Category: CHILDREN</li>
<li>Learning XML. Category: WEB</li>
<li>XQuery Kick Start. Category: WEB</li>
</ul>
</body>
</html>

Magdagdag ng atryibo sa elemento ng HTML

Kasunod na, gagamitin namin ang atryibo ng category bilang class attribute sa listahan ng HTML:

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

Ang XQuery ekspresyon sa itaas ay makakapagpalabas ng mga sumusunod na resulta:

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