Προσθήκη Εлементών και Αναγνώρισης της 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>