Προσθήκη στοιχείων και ιδιοτήτων 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>Everyday Italian. Κατηγορία: Κουζίνα</li>
<li>Harry Potter. Κατηγορία: Παιδιά</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>