XQuery Eleman ve Özellik Ekleme

XML örnek belgesi

Aşağıdaki örneklerde bu "books.xml" belgesini (ve yukarıdaki bölümlerde kullanılan XML dosyası ile aynı) kullanacağız.

Tarayıcınızda "books.xml" dosyasını kontrol edin.

Sonuca öğe ve özellik ekleyin

Önceki bölümden gördüğünüz gibi, sonuçlara girdi dosyasındaki öğe ve özellikleri atayabiliriz:

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

Yukarıdaki XQuery ifadesi sonuçlarda title elementini ve lang özelliğini şu şekilde referans alır:

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

Yukarıdaki XQuery ifadesi title elementini döndürme şekli, onların girdi belgesinde nasıl tanımlandığıyla aynıdır.

Şimdi, sonuçlara kendi elementlerimizi ve özelliklerimizi eklemek istiyoruz!

HTML elementi ve metin ekleyin

Şimdi, sonuçlara HTML elementi eklemek istiyoruz. Sonuçları bir HTML listesine koyacağız:

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

Yukarıdaki XQuery ifadesi aşağıdaki sonuçları üretir:

<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 elementine özellik ekleyin

Önümüzdeki adımda, category özelliğini HTML listesinin class özelliği olarak kullanmak istiyoruz:

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

Bu XQuery ifadesi aşağıdaki sonuçları üretir:

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