Pagdaragdag ng Element at Atribute sa XQuery

XML Instance Document

Magpatuloy kami sa mga halimbawa sa ibaba gamit ang "books.xml" dokumento (kasama ang XML file na ginamit sa nakaraang seksyon).

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

Magdagdag ng elemento at attribute sa resulta

Tulad ng nakita sa nakaraang seksyon, maaari naming mangilahan ang mga elemento at attribute mula sa input file sa resulta:

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

Ang XQuery na ekspresyon na ito ay magpapakita ng title na elemento at attribute na lang, 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 na ekspresyon ang title na elemento ay katulad ng paraan kung paano ito ay inilarawan sa input na dokumento.

Ngayon, kailangan nating idagdag sa resulta ang aming sariling elemento at attribute!

Magdagdag ng HTML na elemento at teksto

Ngayon, kailangan nating idagdag sa resulta ang HTML na elemento. Gustong ilagay namin ang resulta sa isang HTML na listahan:

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

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

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

Magdagdag ng attribute sa HTML na elemento

Kasunod na, kailangan nating gamitin ang attribute na category bilang class attribute sa HTML na listahan:

<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 na ekspresyon na ito ay magbibigay 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>