Επιλογή και Φιλτράρισμα στο XQuery
- Προηγούμενη Σελίδα Προσθήκη XQuery
- Επόμενη Σελίδα Συνάρτησεις XQuery
Παράδειγμα αρχείου XML
Θα συνεχίσουμε να χρησιμοποιούμε το αρχείο "books.xml" στα παρακάτω παραδείγματα (το ίδιο αρχείο XML με το οποίο χρησιμοποιήθηκαν οι κεφάλαια πάνω).
Επιλογή και φιλτράρισμα στοιχείων
Ωστόσο, όπως είδαμε στα προηγούμενα κεφάλαια, χρησιμοποιούμε εκφράσεις διαδρομής ή FLWOR για να επιλέξουμε και να φιλτράρουμε στοιχεία.
Δείτε την παρακάτω έκφραση FLWOR:
for $x in doc("books.xml")/bookstore/book where $x/price>30 order by $x/title return $x/title
- for
- (προαιρετικό) Συνδέει μια μεταβλητή με κάθε στοιχείο που επιστρέφει η έκφραση in
- let
- (προαιρετικό)
- where
- (προαιρετικό) Ορίζει μια συνθήκη
- order by
- (προαιρετικό) Ορίζει τη σειρά διάταξης των αποτελεσμάτων
- return
- Ορίζει το περιεχόμενο που θα επιστρέψει το αποτέλεσμα
for statement
Το for statement συνδέει μεταβλητές με κάθε στοιχείο που επιστρέφει η έκφραση in. Το for statement μπορεί να δημιουργήσει επαναλήψεις. Μπορούν να υπάρχουν πολλαπλά for statements στον ίδιο FLWOR expression.
Για να επαναλάβετε μια συγκεκριμένη αριθμητική φορά σε ένα for statement, μπορείτε να χρησιμοποιήσετε:Κλειδί μέχρι :
for $x in (1 μέχρι 5) return <test>{$x}</test>
Αποτελέσματα:
<test>1</test> <test>2</test> <test>3</test> <test>4</test> <test>5</test>
Κλειδί at Χρησιμοποιείται για τον υπολογισμό των επαναλήψεων:
for $x στο $i in doc("books.xml")/bookstore/book/title return <book>{$i}. {data($x)}</book>
Αποτελέσματα:
<book>1. Η καθημερινή Ιταλική</book> <book>2. Harry Potter</book> <book>3. Εισαγωγή στο XQuery</book> <book>4. Μάθηση XML</book>
Στο for statement επίσηςΕπιτρέπεται πολλαπλές εκφράσεις inΠαρακαλώ χρησιμοποιήστε κόμματα για να διαιρέσετε κάθε έκφραση in:
for $x in (10,20), $y in (100,200) return <test>x={{$x}} και y={{$y}}</test>
Αποτελέσματα:
<test>x=10 και y=100</test> <test>x=10 και y=200</test> <test>x=20 και y=100</test> <test>x=20 και y=200</test>
let
Η πρόταση let μπορεί να ολοκληρώσει την κατανομή μεταβλητών και να αποφύγει την επανάληψη της ίδιας έκφρασης. Η πρόταση let δεν προκαλεί επαναληπτική δραστηριότητα.
let $x := (1 to 5) return <test>{$x}</test>
Αποτελέσματα:
<test>1 2 3 4 5</test>
Η πρόταση where
Η πρόταση where καθορίζει μια ή περισσότερες συνθήκες για τα αποτελέσματα.
where $x/price>30 and $x/price<100
Η πρόταση order by
Η πρόταση order by καθορίζει τη σειρά κατάταξης των αποτελεσμάτων. Εδώ, θα τα ταξινομήσουμε με βάση την κατηγορία και το όνομα του τίτλου:
for $x in doc("books.xml")/bookstore/book order by $x/@category, $x/title return $x/title
Αποτελέσματα:
<title lang="en">Harry Potter</title> <title lang="en">Everyday Italian</title> <title lang="en">Learning XML</title> <title lang="en">XQuery Kick Start</title>
Η πρόταση return:
Η πρόταση return καθορίζει το περιεχόμενο που πρέπει να επιστρέψει.
for $x in doc("books.xml")/bookstore/book return $x/title
Αποτελέσματα:
<title lang="en">Everyday Italian</title> <title lang="en">Harry Potter</title> <title lang="en">XQuery Kick Start</title> <title lang="en">Learning XML</title>
- Προηγούμενη Σελίδα Προσθήκη XQuery
- Επόμενη Σελίδα Συνάρτησεις XQuery