إضافة عناصر وصفات في 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)}. فئة: {data($x/@category)}</li>
}
</ul>
</body>
</html>

توليد التعبير XQuery التالي:

<html>
<body>
<h1>Bookstore</h1>
<ul>
<li>كل يوم إيطالي. فئة: الطبخ</li>
<li>Harry Potter. فئة: CHILDREN</li>
<li>Learning XML. فئة: WEB</li>
<li>XQuery Kick Start. فئة: WEB</li>
</ul>
</body>
</html>

إضافة خاصية إلى عنصر HTML

سنستخدم الآن خاصية category كصفة class في قائمة 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>

توليد التعبير التالي من 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>